mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
Issue #19938: Re-enabled test_bug_1333982 in test_dis, which had been
disabled since 3.0 due to the changes in listcomp handling.
This commit is contained in:
parent
a1de906330
commit
e80e806b3a
2 changed files with 31 additions and 31 deletions
|
@ -6,6 +6,7 @@ import unittest
|
||||||
import sys
|
import sys
|
||||||
import dis
|
import dis
|
||||||
import io
|
import io
|
||||||
|
import re
|
||||||
|
|
||||||
class _C:
|
class _C:
|
||||||
def __init__(self, x):
|
def __init__(self, x):
|
||||||
|
@ -89,26 +90,25 @@ def bug1333982(x=[]):
|
||||||
|
|
||||||
dis_bug1333982 = """\
|
dis_bug1333982 = """\
|
||||||
%-4d 0 LOAD_CONST 1 (0)
|
%-4d 0 LOAD_CONST 1 (0)
|
||||||
3 JUMP_IF_TRUE 33 (to 39)
|
3 POP_JUMP_IF_TRUE 35
|
||||||
6 POP_TOP
|
6 LOAD_GLOBAL 0 (AssertionError)
|
||||||
7 LOAD_GLOBAL 0 (AssertionError)
|
9 LOAD_CONST 2 (<code object <listcomp> at 0x..., file "%s", line %d>)
|
||||||
10 BUILD_LIST 0
|
12 LOAD_CONST 3 ('bug1333982.<locals>.<listcomp>')
|
||||||
13 LOAD_FAST 0 (x)
|
15 MAKE_FUNCTION 0
|
||||||
16 GET_ITER
|
18 LOAD_FAST 0 (x)
|
||||||
>> 17 FOR_ITER 12 (to 32)
|
21 GET_ITER
|
||||||
20 STORE_FAST 1 (s)
|
22 CALL_FUNCTION 1 (1 positional, 0 keyword pair)
|
||||||
23 LOAD_FAST 1 (s)
|
|
||||||
26 LIST_APPEND 2
|
|
||||||
29 JUMP_ABSOLUTE 17
|
|
||||||
|
|
||||||
%-4d >> 32 LOAD_CONST 2 (1)
|
%-4d 25 LOAD_CONST 4 (1)
|
||||||
35 BINARY_ADD
|
28 BINARY_ADD
|
||||||
36 RAISE_VARARGS 2
|
29 CALL_FUNCTION 1 (1 positional, 0 keyword pair)
|
||||||
>> 39 POP_TOP
|
32 RAISE_VARARGS 1
|
||||||
|
|
||||||
%-4d 40 LOAD_CONST 0 (None)
|
%-4d >> 35 LOAD_CONST 0 (None)
|
||||||
43 RETURN_VALUE
|
38 RETURN_VALUE
|
||||||
""" % (bug1333982.__code__.co_firstlineno + 1,
|
""" % (bug1333982.__code__.co_firstlineno + 1,
|
||||||
|
__file__,
|
||||||
|
bug1333982.__code__.co_firstlineno + 1,
|
||||||
bug1333982.__code__.co_firstlineno + 2,
|
bug1333982.__code__.co_firstlineno + 2,
|
||||||
bug1333982.__code__.co_firstlineno + 3)
|
bug1333982.__code__.co_firstlineno + 3)
|
||||||
|
|
||||||
|
@ -193,8 +193,13 @@ class DisTests(unittest.TestCase):
|
||||||
def do_disassembly_test(self, func, expected):
|
def do_disassembly_test(self, func, expected):
|
||||||
lines = self.get_disassembly(func)
|
lines = self.get_disassembly(func)
|
||||||
expected = expected.splitlines()
|
expected = expected.splitlines()
|
||||||
if expected != lines:
|
if expected == lines:
|
||||||
self.fail(
|
return
|
||||||
|
else:
|
||||||
|
lines = [re.sub('0x[0-9A-Fa-f]+', '0x...', l) for l in lines]
|
||||||
|
if expected == lines:
|
||||||
|
return
|
||||||
|
self.fail(
|
||||||
"events did not match expectation:\n" +
|
"events did not match expectation:\n" +
|
||||||
"\n".join(difflib.ndiff(expected,
|
"\n".join(difflib.ndiff(expected,
|
||||||
lines)))
|
lines)))
|
||||||
|
@ -217,18 +222,13 @@ class DisTests(unittest.TestCase):
|
||||||
def test_bug_708901(self):
|
def test_bug_708901(self):
|
||||||
self.do_disassembly_test(bug708901, dis_bug708901)
|
self.do_disassembly_test(bug708901, dis_bug708901)
|
||||||
|
|
||||||
# Test has been disabled due to change in the way
|
|
||||||
# list comps are handled. The byte code now includes
|
|
||||||
# a memory address and a file location, so they change from
|
|
||||||
# run to run.
|
|
||||||
@unittest.skip('disabled due to a change in the way list comps are handled')
|
|
||||||
def test_bug_1333982(self):
|
def test_bug_1333982(self):
|
||||||
# XXX: re-enable this test!
|
|
||||||
# This one is checking bytecodes generated for an `assert` statement,
|
# This one is checking bytecodes generated for an `assert` statement,
|
||||||
# so fails if the tests are run with -O. Skip this test then.
|
# so fails if the tests are run with -O. Skip this test then.
|
||||||
|
if not __debug__:
|
||||||
|
self.skipTest('need asserts, run without -O')
|
||||||
|
|
||||||
if __debug__:
|
self.do_disassembly_test(bug1333982, dis_bug1333982)
|
||||||
self.do_disassembly_test(bug1333982, dis_bug1333982)
|
|
||||||
|
|
||||||
def test_big_linenos(self):
|
def test_big_linenos(self):
|
||||||
def func(count):
|
def func(count):
|
||||||
|
@ -451,8 +451,5 @@ class CodeInfoTests(unittest.TestCase):
|
||||||
self.assertEqual(dis.pretty_flags(0), '0x0')
|
self.assertEqual(dis.pretty_flags(0), '0x0')
|
||||||
|
|
||||||
|
|
||||||
def test_main():
|
|
||||||
run_unittest(DisTests, CodeInfoTests)
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
test_main()
|
unittest.main()
|
||||||
|
|
|
@ -182,6 +182,9 @@ IDLE
|
||||||
Tests
|
Tests
|
||||||
-----
|
-----
|
||||||
|
|
||||||
|
- Issue #19938: Re-enabled test_bug_1333982 in test_dis, which had been
|
||||||
|
disabled since 3.0 due to the changes in listcomp handling.
|
||||||
|
|
||||||
- Issue #19320: test_tcl no longer fails when wantobjects is false.
|
- Issue #19320: test_tcl no longer fails when wantobjects is false.
|
||||||
|
|
||||||
- Issue #19683: Removed empty tests from test_minidom. Patch by Ajitesh Gupta.
|
- Issue #19683: Removed empty tests from test_minidom. Patch by Ajitesh Gupta.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue