Fix test_compile with -O mode (GH-115346)

This commit is contained in:
Serhiy Storchaka 2024-02-19 19:02:29 +02:00 committed by GitHub
parent ecf16ee50e
commit 7b25a82e83
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -749,7 +749,7 @@ class TestSpecifics(unittest.TestCase):
return "unused" return "unused"
self.assertEqual(f.__code__.co_consts, self.assertEqual(f.__code__.co_consts,
("docstring", "used")) (f.__doc__, "used"))
@support.cpython_only @support.cpython_only
def test_remove_unused_consts_no_docstring(self): def test_remove_unused_consts_no_docstring(self):
@ -794,7 +794,7 @@ class TestSpecifics(unittest.TestCase):
def f1(): def f1():
"docstring" "docstring"
return 42 return 42
self.assertEqual(f1.__code__.co_consts, ("docstring", 42)) self.assertEqual(f1.__code__.co_consts, (f1.__doc__, 42))
# This is a regression test for a CPython specific peephole optimizer # This is a regression test for a CPython specific peephole optimizer
# implementation bug present in a few releases. It's assertion verifies # implementation bug present in a few releases. It's assertion verifies
@ -1047,6 +1047,8 @@ class TestSpecifics(unittest.TestCase):
for func in (no_code1, no_code2): for func in (no_code1, no_code2):
with self.subTest(func=func): with self.subTest(func=func):
if func is no_code1 and no_code1.__doc__ is None:
continue
code = func.__code__ code = func.__code__
[(start, end, line)] = code.co_lines() [(start, end, line)] = code.co_lines()
self.assertEqual(start, 0) self.assertEqual(start, 0)
@ -1524,6 +1526,7 @@ class TestSourcePositions(unittest.TestCase):
self.assertOpcodeSourcePositionIs(compiled_code, 'POP_JUMP_IF_TRUE', self.assertOpcodeSourcePositionIs(compiled_code, 'POP_JUMP_IF_TRUE',
line=4, end_line=4, column=8, end_column=13, occurrence=2) line=4, end_line=4, column=8, end_column=13, occurrence=2)
@unittest.skipIf(sys.flags.optimize, "Assertions are disabled in optimized mode")
def test_multiline_assert(self): def test_multiline_assert(self):
snippet = textwrap.dedent("""\ snippet = textwrap.dedent("""\
assert (a > 0 and assert (a > 0 and