def test_write_2(self): write_data = bytes(ds.BLOCK_SIZE * 3) + \ b'\x00\x00\x00\x00\x00\x00\x00\x00' + \ b'\x00\x00\x00\x00\x00\x00\x00\x00' + \ b'\x00\x00\x00\x00\x00\x00\x00\x00' + \ b'\x00\x00\x00\x00\x00\x00\x00\x00' + \ b'\x00\x00\x00\x00\x00\x00\x00\x00' + \ b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' with open(PATH, 'wb') as f: f.write(write_data) expected = bytes(ds.BLOCK_SIZE * 3)+ \ b'\x01\x00\x00\x00\x00\x00\x00\x00' + \ b'\x01\x00\x00\x00\x00\x00\x00\x00' + \ b'\x02\x00\x00\x00\x00\x00\x00\x00' + \ b'\x03\x00\x00\x00\x00\x00\x00\x00' + \ b'\x04\x00\x00\x00\x00\x00\x00\x00' + \ b'\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00' self.cls = ds.Inode(device=device_io.Disk(PATH), index=2) self.cls.i_type = 1 self.cls.address_direct = [1, 2, 3, 4, 5] self.cls.__write__() with open(PATH, 'rb') as f: output = f.read() self.assertEqual(output, expected)
def setUp(self): ds.BLOCK_SIZE = 50 device_io.BLOCK_SIZE = 50 ds.INODE_NUM_DIRECT_BLOCKS = 5 ds.NUM_INODES = 10 self.cls = ds.Inode() open(PATH, 'a').close()
def test_allocate_with_device(self): input_data = bytes(ds.SuperBlock()) + \ bytes(ds.NUM_INODES * ds.BLOCK_SIZE) + \ bytes(ds.InodeFreeList()) with open(PATH, 'wb') as f: f.write(input_data) self.cls = ds.Inode(device=device_io.Disk(PATH)) # self.assertEqual(self.cls.index, None) # New inode should have a None index # self.cls.allocate() self.assertEqual(self.cls.index, 0) with self.assertRaises(Exception): self.cls.allocate()
def test_bytes(self): self.cls = ds.Inode() self.cls.index = 2 self.cls.i_type = 1 self.cls.address_direct = [1, 2, 3, 4, 5] expected = b'\x01\x00\x00\x00\x00\x00\x00\x00' + \ b'\x01\x00\x00\x00\x00\x00\x00\x00' + \ b'\x02\x00\x00\x00\x00\x00\x00\x00' + \ b'\x03\x00\x00\x00\x00\x00\x00\x00' + \ b'\x04\x00\x00\x00\x00\x00\x00\x00' + \ b'\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00' output = bytes(self.cls) self.assertEqual(output, expected)
def test_read_2(self): input_data = bytes(ds.BLOCK_SIZE * 3) + \ b'\x01\x00\x00\x00\x00\x00\x00\x00' + \ b'\x01\x00\x00\x00\x00\x00\x00\x00' + \ b'\x02\x00\x00\x00\x00\x00\x00\x00' + \ b'\x03\x00\x00\x00\x00\x00\x00\x00' + \ b'\x04\x00\x00\x00\x00\x00\x00\x00' + \ b'\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00' expected = [1, 1, 2, 3, 4, 5] with open(PATH, 'wb') as f: f.write(input_data) self.cls = ds.Inode(device=device_io.Disk(PATH), index=2) output = self.cls._items self.assertEqual(output, expected)