diff options
Diffstat (limited to 'zephyr/firmware_builder.py')
-rwxr-xr-x | zephyr/firmware_builder.py | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/zephyr/firmware_builder.py b/zephyr/firmware_builder.py index 540274105b..79ee6a3201 100755 --- a/zephyr/firmware_builder.py +++ b/zephyr/firmware_builder.py @@ -74,7 +74,22 @@ def write_metadata(opts, info): def bundle_coverage(opts): """Bundles the artifacts from code coverage into its own tarball.""" - raise NotImplementedError + info = firmware_pb2.FirmwareArtifactInfo() + info.bcs_version_info.version_string = opts.bcs_version + bundle_dir = get_bundle_dir(opts) + zephyr_dir = pathlib.Path(__file__).parent + platform_ec = zephyr_dir.resolve().parent + build_dir = platform_ec / 'build/zephyr-coverage' + tarball_name = 'coverage.tbz2' + tarball_path = bundle_dir / tarball_name + cmd = ['tar', 'cvfj', tarball_path, 'lcov.info'] + subprocess.run(cmd, cwd=build_dir, check=True) + meta = info.objects.add() + meta.file_name = tarball_name + meta.lcov_info.type = firmware_pb2.FirmwareArtifactInfo.LcovTarballInfo.LcovType.LCOV + + write_metadata(opts, info) + def bundle_firmware(opts): @@ -116,6 +131,13 @@ def test(opts): with open(opts.metrics, 'w') as f: f.write(json_format.MessageToJson(metrics)) + if opts.code_coverage: + zephyr_dir = pathlib.Path(__file__).parent + platform_ec = zephyr_dir.resolve().parent + build_dir = platform_ec / 'build/zephyr-coverage' + return subprocess.run( + ['zmake', '-D', 'coverage', build_dir], cwd=platform_ec).returncode + return subprocess.run(['zmake', '-D', 'testall', '--fail-fast']).returncode |