diff --git a/scripts/pylib/twister/twisterlib/coverage.py b/scripts/pylib/twister/twisterlib/coverage.py index de1bdbb6359..3ae14a50131 100644 --- a/scripts/pylib/twister/twisterlib/coverage.py +++ b/scripts/pylib/twister/twisterlib/coverage.py @@ -301,20 +301,29 @@ class Lcov(CoverageTool): invalid_chars = re.compile(r"[^A-Za-z0-9_]") cmd.append("--test-name") cmd.append(invalid_chars.sub("_", next(iter(self.instances)))) - self.run_lcov(cmd, coveragelog) + ret = self.run_lcov(cmd, coveragelog) + if ret: + logger.error("LCOV capture report stage failed with %s", ret) + return ret, {} # We want to remove tests/* and tests/ztest/test/* but save tests/ztest cmd = ["--extract", coveragefile, os.path.join(self.base_dir, "tests", "ztest", "*"), "--output-file", ztestfile] - self.run_lcov(cmd, coveragelog) + ret = self.run_lcov(cmd, coveragelog) + if ret: + logger.error("LCOV extract report stage failed with %s", ret) + return ret, {} files = [] if os.path.exists(ztestfile) and os.path.getsize(ztestfile) > 0: cmd = ["--remove", ztestfile, os.path.join(self.base_dir, "tests/ztest/test/*"), "--output-file", ztestfile] - self.run_lcov(cmd, coveragelog) + ret = self.run_lcov(cmd, coveragelog) + if ret: + logger.error("LCOV remove ztest report stage failed with %s", ret) + return ret, {} files = [coveragefile, ztestfile] else: @@ -322,7 +331,10 @@ class Lcov(CoverageTool): for i in self.ignores: cmd = ["--remove", coveragefile, i, "--output-file", coveragefile] - self.run_lcov(cmd, coveragelog) + ret = self.run_lcov(cmd, coveragelog) + if ret: + logger.error("LCOV remove ignores report stage failed with %s", ret) + return ret, {} if 'html' not in self.output_formats.split(','): return 0, {} @@ -334,6 +346,8 @@ class Lcov(CoverageTool): cmd.append("--show-details") cmd += files ret = self.run_command(cmd, coveragelog) + if ret: + logger.error("LCOV genhtml report stage failed with %s", ret) # TODO: Add LCOV summary coverage report. return ret, { 'report': coveragefile, 'ztest': ztestfile, 'summary': None }