data += "%c" % int(line[8+2*i:10+2*i], 16)
return record_type, address, data
+def readable_binary_string(s):
+ return "".join("%02x" % ord(c) for c in s)
+
class DeleteServer(unittest.TestCase):
def tearDown(self):
del self.server
for line in b:
record_type, address, line_data = ihex_parse(line)
if (record_type == 0):
- self.assertEqual(line_data, data[address:address+len(line_data)])
+ self.assertEqual(readable_binary_string(line_data),
+ readable_binary_string(data[address:address+len(line_data)]))
class InstantHaltTest(DeleteServer):
def setUp(self):
TEST_FP_OP_D_INTERNAL( testnum, 0, dword result, val1, val2, 0.0, \
inst a0, f0, f1)
+#define TEST_FCLASS_S(testnum, correct, input) \
+ TEST_CASE(testnum, a0, correct, li a0, input; fmv.s.x fa0, a0; \
+ fclass.s a0, fa0)
+
+#define TEST_FCLASS_D(testnum, correct, input) \
+ TEST_CASE(testnum, a0, correct, li a0, input; fmv.d.x fa0, a0; \
+ fclass.d a0, fa0)
+
#define TEST_INT_FP_OP_S( testnum, inst, result, val1 ) \
test_ ## testnum: \
li TESTNUM, testnum; \
# Arithmetic tests
#-------------------------------------------------------------
- #define TEST_FCLASS_D(testnum, correct, input) \
- TEST_CASE(testnum, a0, correct, li a0, input; fmv.d.x fa0, a0; \
- fclass.d a0, fa0)
-
TEST_FCLASS_D( 2, 1 << 0, 0xfff0000000000000 )
TEST_FCLASS_D( 3, 1 << 1, 0xbff0000000000000 )
TEST_FCLASS_D( 4, 1 << 2, 0x800fffffffffffff )
# Arithmetic tests
#-------------------------------------------------------------
- #define TEST_FCLASS_S(testnum, correct, input) \
- TEST_CASE(testnum, a0, correct, li a0, input; fmv.s.x fa0, a0; \
- fclass.s a0, fa0)
-
TEST_FCLASS_S( 2, 1 << 0, 0xff800000 )
TEST_FCLASS_S( 3, 1 << 1, 0xbf800000 )
TEST_FCLASS_S( 4, 1 << 2, 0x807fffff )