mirror of
https://github.com/python/cpython.git
synced 2025-11-09 10:01:42 +00:00
gh-51524: Fix bug when calling trace.CoverageResults with valid infile (GH-99629)
(cherry picked from commit 594de165bf)
Co-authored-by: Furkan Onder <furkanonder@protonmail.com>
Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
This commit is contained in:
parent
f160996412
commit
fce9516a0f
3 changed files with 12 additions and 1 deletions
|
|
@ -1,4 +1,5 @@
|
||||||
import os
|
import os
|
||||||
|
from pickle import dump
|
||||||
import sys
|
import sys
|
||||||
from test.support import captured_stdout
|
from test.support import captured_stdout
|
||||||
from test.support.os_helper import (TESTFN, rmtree, unlink)
|
from test.support.os_helper import (TESTFN, rmtree, unlink)
|
||||||
|
|
@ -412,6 +413,15 @@ def test_issue9936(self):
|
||||||
self.assertIn(modname, coverage)
|
self.assertIn(modname, coverage)
|
||||||
self.assertEqual(coverage[modname], (5, 100))
|
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
|
### Tests that don't mess with sys.settrace and can be traced
|
||||||
### themselves TODO: Skip tests that do mess with sys.settrace when
|
### themselves TODO: Skip tests that do mess with sys.settrace when
|
||||||
### regrtest is invoked with -T option.
|
### regrtest is invoked with -T option.
|
||||||
|
|
|
||||||
|
|
@ -172,7 +172,7 @@ def __init__(self, counts=None, calledfuncs=None, infile=None,
|
||||||
try:
|
try:
|
||||||
with open(self.infile, 'rb') as f:
|
with open(self.infile, 'rb') as f:
|
||||||
counts, calledfuncs, callers = pickle.load(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:
|
except (OSError, EOFError, ValueError) as err:
|
||||||
print(("Skipping counts file %r: %s"
|
print(("Skipping counts file %r: %s"
|
||||||
% (self.infile, err)), file=sys.stderr)
|
% (self.infile, err)), file=sys.stderr)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Fix bug when calling trace.CoverageResults with valid infile.
|
||||||
Loading…
Add table
Add a link
Reference in a new issue