Esempio n. 1
0
 def test_big_endian(self):
     for be in [0, 1]:
         packer = UVMPacker()
         packer.big_endian = be
         packer.pack_field_int(0x123, 32)
         packer.pack_field_int(0xABC, 32)
         packer.pack_field_int(0xFACE, 64)
         packer.pack_field_int(0x77, 8)
         packer.set_packed_size()
         val1 = packer.unpack_field(32)
         val2 = packer.unpack_field(32)
         val3 = packer.unpack_field(64)
         val4 = packer.unpack_field(8)
         self.assertEqual(hex(val1), hex(0x123))
         self.assertEqual(hex(val2), hex(0xABC))
         self.assertEqual(hex(val3), hex(0xFACE))
         self.assertEqual(hex(val4), hex(0x77))
Esempio n. 2
0
 def test_unpack_field(self):
     num_ints = int(4096 / 32)
     arr_ints = []
     for i in range(num_ints):
         arr_ints.append(1 + i**2)
     packer = UVMPacker()
     packer.big_endian = 0
     packer.pack_ints(arr_ints, num_ints * 32)
     packer.set_packed_size()
     val_4096b = packer.unpack_field(4096)
     # Verify the results
     for i in range(num_ints):
         value = (val_4096b >> (32 * i)) & MASK_INT
         self.assertEqual(value, arr_ints[i])