Home | History | Annotate | Download | only in test
      1 import dis
      2 from test.support import import_module
      3 import unittest
      4 
      5 _opcode = import_module("_opcode")
      6 
      7 class OpcodeTests(unittest.TestCase):
      8 
      9     def test_stack_effect(self):
     10         self.assertEqual(_opcode.stack_effect(dis.opmap['POP_TOP']), -1)
     11         self.assertEqual(_opcode.stack_effect(dis.opmap['DUP_TOP_TWO']), 2)
     12         self.assertEqual(_opcode.stack_effect(dis.opmap['BUILD_SLICE'], 0), -1)
     13         self.assertEqual(_opcode.stack_effect(dis.opmap['BUILD_SLICE'], 1), -1)
     14         self.assertEqual(_opcode.stack_effect(dis.opmap['BUILD_SLICE'], 3), -2)
     15         self.assertRaises(ValueError, _opcode.stack_effect, 30000)
     16         self.assertRaises(ValueError, _opcode.stack_effect, dis.opmap['BUILD_SLICE'])
     17         self.assertRaises(ValueError, _opcode.stack_effect, dis.opmap['POP_TOP'], 0)
     18 
     19 if __name__ == "__main__":
     20     unittest.main()
     21