mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
gh-94814: Improve coverage of _PyCode_CreateLineArray (GH-94852)
The case where there are more than (1 << 15) lines was not covered.
I don't know if increasing test coverage requires a blurb -- let me know if it does.
Automerge-Triggered-By: GH:brandtbucher
(cherry picked from commit 582ae86b3f
)
Co-authored-by: Michael Droettboom <mdboom@gmail.com>
This commit is contained in:
parent
d9107aa015
commit
8f92ebbde7
1 changed files with 22 additions and 0 deletions
|
@ -1571,6 +1571,28 @@ class TraceTestCase(unittest.TestCase):
|
|||
|
||||
self.run_and_compare(func, EXPECTED_EVENTS)
|
||||
|
||||
def test_very_large_function(self):
|
||||
# There is a separate code path when the number of lines > (1 << 15).
|
||||
d = {}
|
||||
exec("""def f(): # line 0
|
||||
x = 0 # line 1
|
||||
y = 1 # line 2
|
||||
%s # lines 3 through (1 << 16)
|
||||
x += 1 #
|
||||
return""" % ('\n' * (1 << 16),), d)
|
||||
f = d['f']
|
||||
|
||||
EXPECTED_EVENTS = [
|
||||
(0, 'call'),
|
||||
(1, 'line'),
|
||||
(2, 'line'),
|
||||
(65540, 'line'),
|
||||
(65541, 'line'),
|
||||
(65541, 'return'),
|
||||
]
|
||||
|
||||
self.run_and_compare(f, EXPECTED_EVENTS)
|
||||
|
||||
|
||||
EVENT_NAMES = [
|
||||
'call',
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue