| #!/usr/bin/env python3 |
| # |
| # Copyright (c) 2022 Arm Limited. All rights reserved. |
| # |
| # SPDX-License-Identifier: BSD-3-Clause |
| |
| # Script to produce cumulative "diff" report from ECLAIR individual |
| # per-service diff reports. |
| |
| import sys |
| import glob |
| import os |
| from string import Template |
| |
| |
| def lcut(l, prefix): |
| if l.startswith(prefix): |
| l = l[len(prefix):] |
| return l |
| |
| |
| def process_file(fname, del_or_add): |
| with open(fname) as f: |
| for l in f: |
| l = l.rstrip() |
| if not l: |
| break |
| for l in f: |
| if l.startswith("service "): |
| l = lcut(l, "service ") |
| if del_or_add == "del": |
| l = "Resolved for " + l |
| else: |
| l = "Added for " + l |
| elif l.startswith("End of report"): |
| l = "---------------\n" |
| sys.stdout.write(l) |
| |
| |
| path = "." |
| if len(sys.argv) > 1: |
| path = sys.argv[1] |
| |
| files = sorted(glob.glob(path + "/*.etr")) |
| #print(files) |
| |
| EMPTY_REPORT_HEADER = Template("""\ |
| No new MISRA issues detected, good work! |
| ${BUILD_URL}artifact/ |
| """).safe_substitute(os.environ) |
| |
| NONEMPTY_REPORT_HEADER = Template("""\ |
| MISRA delta report: ${BUILD_URL}artifact/ |
| |
| = MISRA delta report for the patch (issues resolved and/or newly added) = |
| """).safe_substitute(os.environ) |
| |
| header_done = False |
| |
| for f in files: |
| if "/B.EXPLAIN" in f: |
| continue |
| comp = f.rsplit(".", 2) |
| # print("*", f, comp) |
| if not header_done: |
| print(NONEMPTY_REPORT_HEADER) |
| header_done = True |
| process_file(f, comp[-2]) |
| |
| if not header_done: |
| print(EMPTY_REPORT_HEADER) |