diff options
Diffstat (limited to 'Lib/test/test__opcode.py')
-rw-r--r-- | Lib/test/test__opcode.py | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/Lib/test/test__opcode.py b/Lib/test/test__opcode.py index c1f612d..10f04b6 100644 --- a/Lib/test/test__opcode.py +++ b/Lib/test/test__opcode.py @@ -8,6 +8,14 @@ from _opcode import stack_effect class OpListTests(unittest.TestCase): + def check_bool_function_result(self, func, ops, expected): + for op in ops: + if isinstance(op, str): + op = dis.opmap[op] + with self.subTest(opcode=op, func=func): + self.assertIsInstance(func(op), bool) + self.assertEqual(func(op), expected) + def test_invalid_opcodes(self): invalid = [-100, -1, 255, 512, 513, 1000] self.check_bool_function_result(_opcode.is_valid, invalid, False) @@ -47,7 +55,7 @@ class OpListTests(unittest.TestCase): check_function(self, _opcode.has_exc, dis.hasexc) -class OpListTests(unittest.TestCase): +class StackEffectTests(unittest.TestCase): def test_stack_effect(self): self.assertEqual(stack_effect(dis.opmap['POP_TOP']), -1) self.assertEqual(stack_effect(dis.opmap['BUILD_SLICE'], 0), -1) |