blob: ad4ad556bbb6dd8ca0fb2e6516a5178fd3bedc80 [file] [log] [blame]
Paul Sokolovsky2512ec52022-03-04 00:15:39 +03001__copyright__ = """
2/*
3 * Copyright (c) 2018-2021, Arm Limited. All rights reserved.
4 *
5 * SPDX-License-Identifier: BSD-3-Clause
6 *
7 */
8 """
9
10"""
11Module with helper functions for code coverage reports.
12"""
13
14import os
15import subprocess
16
17from lava_helper import test_lava_dispatch_credentials
18
19
20def run(cmd, cwd=None):
21 print("+ %s" % cmd, flush=True)
22 subprocess.check_call(cmd, shell=True, cwd=cwd)
23
24
25def coverage_reports(jobs, user_args):
26 lava = test_lava_dispatch_credentials(user_args)
27 for job_id, info in jobs.items():
28 job_dir = info["job_dir"]
29 metadata = info["metadata"]
30
31 if os.getenv("CODE_COVERAGE_EN") == "TRUE" and info["device_type"] == "fvp":
32
33 def dl_artifact(fname):
34 lava.fetch_file(
35 metadata["build_job_url"] + "artifact/trusted-firmware-m/build/bin/" + fname,
36 os.path.join(job_dir, fname)
37 )
38
39 dl_artifact("bl2.axf")
40 dl_artifact("tfm_s.axf")
41 dl_artifact("tfm_ns.axf")
42 run("python3 $SHARE_FOLDER/qa-tools/coverage-tool/coverage-reporting/intermediate_layer.py --config-json $SHARE_FOLDER/tf-m-ci-scripts/lava_helper/trace2covjson.json --local-workspace $SHARE_FOLDER", cwd=job_dir)
43 run("python3 $SHARE_FOLDER/qa-tools/coverage-tool/coverage-reporting/generate_info_file.py --workspace $SHARE_FOLDER --json covjson.json", cwd=job_dir)
44 run("genhtml --branch-coverage coverage.info --output-directory trace_report", cwd=job_dir)