diff --git a/tools/coverage_plugins_package/src/coverage_plugins/jit_plugin.py b/tools/coverage_plugins_package/src/coverage_plugins/jit_plugin.py index f8bc98a85380..8f2a66ce8657 100644 --- a/tools/coverage_plugins_package/src/coverage_plugins/jit_plugin.py +++ b/tools/coverage_plugins_package/src/coverage_plugins/jit_plugin.py @@ -10,11 +10,12 @@ marked as covered. from coverage import CoveragePlugin, CoverageData from inspect import ismodule, isclass, ismethod, isfunction, iscode, getsourcefile, getsourcelines +from time import time # All coverage stats resulting from this plug-in will be in a separate .coverage file that should be merged later with # `coverage combine`. The convention seems to be .coverage.dotted.suffix based on the following link: # https://coverage.readthedocs.io/en/coverage-5.5/cmd.html#combining-data-files-coverage-combine -cov_data = CoverageData(basename='.coverage.jit') +cov_data = CoverageData(basename=f'.coverage.jit.{time()}') def is_not_builtin_class(obj): @@ -38,9 +39,11 @@ class JitPlugin(CoveragePlugin): # built-in modules or functions as those do not seem to be JIT'd either. if is_not_builtin_class(obj) or ismodule(obj) or ismethod(obj) or isfunction(obj) or iscode(obj): filename = getsourcefile(obj) - sourcelines, starting_lineno = getsourcelines(obj) - line_data = {filename: range(starting_lineno, starting_lineno + len(sourcelines))} - cov_data.add_lines(line_data) + # We don't want to report for filename = None + if filename: + sourcelines, starting_lineno = getsourcelines(obj) + line_data = {filename: range(starting_lineno, starting_lineno + len(sourcelines))} + cov_data.add_lines(line_data) super().dynamic_context(frame) def coverage_init(reg, options):