Skip to content

Commit

Permalink
gh-51524: Fix bug when calling trace.CoverageResults with valid infile (
Browse files Browse the repository at this point in the history
GH-99629)

(cherry picked from commit 594de16)

Co-authored-by: Furkan Onder <furkanonder@protonmail.com>
Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
  • Loading branch information
3 people committed Nov 28, 2022
1 parent ab87bcd commit 345aaa4
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 1 deletion.
10 changes: 10 additions & 0 deletions Lib/test/test_trace.py
@@ -1,4 +1,5 @@
import os
from pickle import dump
import sys
from test.support import captured_stdout
from test.support.os_helper import (TESTFN, rmtree, unlink)
Expand Down Expand Up @@ -407,6 +408,15 @@ def test_issue9936(self):
self.assertIn(modname, coverage)
self.assertEqual(coverage[modname], (5, 100))

def test_coverageresults_update(self):
# Update empty CoverageResults with a non-empty infile.
infile = TESTFN + '-infile'
with open(infile, 'wb') as f:
dump(({}, {}, {'caller': 1}), f, protocol=1)
self.addCleanup(unlink, infile)
results = trace.CoverageResults({}, {}, infile, {})
self.assertEqual(results.callers, {'caller': 1})

### Tests that don't mess with sys.settrace and can be traced
### themselves TODO: Skip tests that do mess with sys.settrace when
### regrtest is invoked with -T option.
Expand Down
2 changes: 1 addition & 1 deletion Lib/trace.py
Expand Up @@ -172,7 +172,7 @@ def __init__(self, counts=None, calledfuncs=None, infile=None,
try:
with open(self.infile, 'rb') as f:
counts, calledfuncs, callers = pickle.load(f)
self.update(self.__class__(counts, calledfuncs, callers))
self.update(self.__class__(counts, calledfuncs, callers=callers))
except (OSError, EOFError, ValueError) as err:
print(("Skipping counts file %r: %s"
% (self.infile, err)), file=sys.stderr)
Expand Down
@@ -0,0 +1 @@
Fix bug when calling trace.CoverageResults with valid infile.

0 comments on commit 345aaa4

Please sign in to comment.