Beispiel #1
0
    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)
Beispiel #2
0
 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()
Beispiel #3
0
 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()
Beispiel #4
0
 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)
Beispiel #5
0
 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)