diff --git a/ietf/utils/management/commands/coverage_changes.py b/ietf/utils/management/commands/coverage_changes.py index d25db4b71..935971cba 100644 --- a/ietf/utils/management/commands/coverage_changes.py +++ b/ietf/utils/management/commands/coverage_changes.py @@ -108,12 +108,16 @@ class Command(BaseCommand): mlines, mcov = mcoverage[mkey] elif mformat == 4: mlines, mcov = mcoverage[mkey] + elif mformat == 5: + mlines, mcov, mmissnum, mmisslines = mcoverage[mkey] else: raise CommandError("The release coverage data has an unknown format ('%s'), quitting." % mformat) if lformat == 1: linfo, lcov = None, lcoverage[key] elif lformat in [2, 4]: linfo, lcov = lcoverage[key] + elif lformat == 5: + linfo, lcov, lmissnum, lmisslines = lcoverage[key] else: raise CommandError("The latest coverage data has an unknown format ('%s'), quitting." % lformat) diff --git a/ietf/utils/test_runner.py b/ietf/utils/test_runner.py index 03a221e5a..8612079c5 100644 --- a/ietf/utils/test_runner.py +++ b/ietf/utils/test_runner.py @@ -236,12 +236,16 @@ class CoverageReporter(Reporter): self.find_file_reporters(None) total = Numbers() - result = {"coverage": 0.0, "covered": {}, "format": 2, } + result = {"coverage": 0.0, "covered": {}, "format": 5, } for fr in self.file_reporters: try: analysis = self.coverage._analyze(fr) nums = analysis.numbers - result["covered"][fr.relative_filename()] = (nums.n_statements, nums.pc_covered/100.0) + missing_nums = sorted(analysis.missing) + with open(analysis.filename) as file: + lines = file.read().splitlines() + missing_lines = [ lines[l-1] for l in missing_nums ] + result["covered"][fr.relative_filename()] = (nums.n_statements, nums.pc_covered/100.0, missing_nums, missing_lines) total += nums except KeyboardInterrupt: # pragma: not covered raise diff --git a/release-coverage.json.gz b/release-coverage.json.gz index b0c807033..0267478ed 100644 Binary files a/release-coverage.json.gz and b/release-coverage.json.gz differ