def test_empty_returning_main_block(self): block = InstructionBlock() self.assertEqual(0, block.get_start_address()) self.assertIsNone(block.return_ip) ip = InstructionPointer(InstructionBlock(), 7) block.return_ip = ip # must have no effect self.__verify_block(block, [], [STOPInstruction()])
def test_empty_relative_block(self): return_block = InstructionBlock() block = InstructionBlock(return_block) self.assertRaises(InstructionBlockNotYetPlacedException, block.get_start_address) self.assertRaises(MissingReturnAddressException, block.compile_sequence) ip = InstructionPointer(return_block, 7) block.return_ip = ip self.__verify_block(block, [], [GOTOInstruction(ip.block, ip.offset)])