MCPcopy Index your code
hub / github.com/RustPython/RustPython / test_stack_effect

Method test_stack_effect

Lib/test/test__opcode.py:66–83  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

64
65class StackEffectTests(unittest.TestCase):
66 def test_stack_effect(self):
67 self.assertEqual(stack_effect(dis.opmap['POP_TOP']), -1)
68 self.assertEqual(stack_effect(dis.opmap['BUILD_SLICE'], 2), -1)
69 self.assertEqual(stack_effect(dis.opmap['BUILD_SLICE'], 3), -2)
70 self.assertRaises(ValueError, stack_effect, 30000)
71 # All defined opcodes
72 has_arg = dis.hasarg
73 for name, code in filter(lambda item: item[0] not in dis.deoptmap, dis.opmap.items()):
74 if code >= opcode.MIN_INSTRUMENTED_OPCODE:
75 continue
76 with self.subTest(opname=name):
77 stack_effect(code)
78 stack_effect(code, 0)
79 # All not defined opcodes
80 for code in set(range(256)) - set(dis.opmap.values()):
81 with self.subTest(opcode=code):
82 self.assertRaises(ValueError, stack_effect, code)
83 self.assertRaises(ValueError, stack_effect, code, 0)
84
85 def test_stack_effect_jump(self):
86 FOR_ITER = dis.opmap['FOR_ITER']

Callers

nothing calls this directly

Calls 8

stack_effectFunction · 0.90
filterFunction · 0.85
setFunction · 0.85
subTestMethod · 0.80
assertEqualMethod · 0.45
assertRaisesMethod · 0.45
itemsMethod · 0.45
valuesMethod · 0.45

Tested by

no test coverage detected