def test_simple_types_ints_symbolic(self): cs = ConstraintSet() x = cs.new_bitvec(256, name="x") y = cs.new_bitvec(256, name="y") # Something is terribly wrong x,y = 10,20 my_ser = ABI.serialize('(uint,uint)', x, y) x_, y_ = ABI.deserialize('(uint,uint)', my_ser) self.assertTrue(solver.must_be_true(cs, x == x_)) self.assertTrue(solver.must_be_true(cs, y == y_))
def test_serialize_bytes_symbolic(self): cs = ConstraintSet() buf = cs.new_array(index_max=17) ret = ABI.serialize('bytes', buf) # does the offset field look right? self.assertTrue(solver.must_be_true(cs, ret[0:32] == bytearray(b'\x00'*31 + b'\x20'))) # does the size field look right? self.assertTrue(solver.must_be_true(cs, ret[32:64] == bytearray(b'\x00'*31 + b'\x11'))) # does the data field look right? self.assertTrue(solver.must_be_true(cs, ret[64:64+32] == buf + bytearray(b'\x00'*15)))
def test_simple_types_ints_symbolic1(self): cs = ConstraintSet() x = cs.new_bitvec(256, name="x") # Something is terribly wrong x,y = 10,20 my_ser = ABI.serialize('uint', x) self.assertTrue( solver.must_be_true(cs, my_ser[0] == operators.EXTRACT(x, 256 - 8, 8)))