mirror of
https://github.com/python/cpython.git
synced 2024-11-30 21:34:17 +08: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
This commit is contained in:
parent
944ff8c57c
commit
582ae86b3f
@ -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…
Reference in New Issue
Block a user