def test_registers_a_overflow(self): stdout = StringIO() mon = Monitor(stdout=stdout) mon.do_registers('a=100') out = stdout.getvalue() expected = "Overflow: '100' too wide for register 'a'" self.assertTrue(out.startswith(expected))
def test_registers_updates_single_register(self): stdout = StringIO() mon = Monitor(stdout=stdout) mon.do_registers('x=42') out = stdout.getvalue() self.assertEqual("", out) self.assertEqual(0x42, mon._mpu.x)
def test_registers_updates_all_registers(self): stdout = StringIO() mon = Monitor(stdout=stdout) mon.do_registers('a=42,x=43,y=44,p=45, sp=46, pc=4600') out = stdout.getvalue() self.assertEqual("", out) self.assertEqual(0x42, mon._mpu.a) self.assertEqual(0x43, mon._mpu.x) self.assertEqual(0x44, mon._mpu.y) self.assertEqual(0x45, mon._mpu.p) self.assertEqual(0x46, mon._mpu.sp) self.assertEqual(0x4600, mon._mpu.pc)
def test_registers_invalid_register_error(self): stdout = StringIO() mon = Monitor(stdout=stdout) mon.do_registers('z=3') out = stdout.getvalue() self.assertEqual("Invalid register: z\n", out)
def test_registers_label_error_bad_value(self): stdout = StringIO() mon = Monitor(stdout=stdout) mon.do_registers('x=pony') out = stdout.getvalue() self.assertEqual("Label not found: pony\n", out)
def test_registers_syntax_error_bad_format(self): stdout = StringIO() mon = Monitor(stdout=stdout) mon.do_registers('x') out = stdout.getvalue() self.assertEqual("Syntax error: x\n", out)
def test_registers_display_returns_to_prompt(self): stdout = StringIO() mon = Monitor(stdout=stdout) mon.do_registers('') out = stdout.getvalue() self.assertEqual('', out)