def test_allocate_mixed_keys(self): fixed_masks = [None, None, 0xFFFFFF00, 0xFFFFF800] n_keys = [200, 20, 20, 256] allocator = MallocBasedRoutingInfoAllocator() allocator._allocate_fixed_keys_and_masks( [BaseKeyAndMask(0x800, 0xFFFFF800)], None) print(allocator._free_space_tracker) for mask, keys in zip(fixed_masks, n_keys): self._print_keys_and_masks( allocator._allocate_keys_and_masks(mask, None, keys)) print(allocator._free_space_tracker) print(allocator._free_space_tracker) error = ("Allocation has not resulted in the expected free space" " being available") self.assertEqual(len(allocator._free_space_tracker), 3, error) self.assertEqual(allocator._free_space_tracker[0].start_address, 0x120, error) self.assertEqual(allocator._free_space_tracker[0].size, 224, error) self.assertEqual(allocator._free_space_tracker[1].start_address, 0x300, error) self.assertEqual(allocator._free_space_tracker[1].size, 1280, error) self.assertEqual(allocator._free_space_tracker[2].start_address, 0x1800, error) self.assertEqual(allocator._free_space_tracker[2].size, 0x100000000 - 0x1800, error)
def test_allocate_mixed_keys(self): fixed_masks = [None, None, 0xFFFFFF00, 0xFFFFF800] n_keys = [200, 20, 20, 256] allocator = MallocBasedRoutingInfoAllocator() allocator._allocate_fixed_keys_and_masks( [BaseKeyAndMask(0x800, 0xFFFFF800)], None) print(allocator._free_space_tracker) for mask, keys in zip(fixed_masks, n_keys): self._print_keys_and_masks( allocator._allocate_keys_and_masks(mask, None, keys)) print(allocator._free_space_tracker) print(allocator._free_space_tracker) error = ("Allocation has not resulted in the expected free space" " being available") self.assertEqual(len(allocator._free_space_tracker), 3, error) self.assertEqual(allocator._free_space_tracker[0].start_address, 0x120, error) self.assertEqual(allocator._free_space_tracker[0].size, 224, error) self.assertEqual(allocator._free_space_tracker[1].start_address, 0x300, error) self.assertEqual(allocator._free_space_tracker[1].size, 1280, error) self.assertEqual(allocator._free_space_tracker[2].start_address, 0x1800, error) self.assertEqual(allocator._free_space_tracker[2].size, 0x100000000 - 0x1800, error)
def test_allocate_n_keys(self): allocator = MallocBasedRoutingInfoAllocator() self._print_keys_and_masks(allocator._allocate_keys_and_masks( None, None, 20)) error = ("Allocation has not resulted in the expected free space" " being available") print(allocator._free_space_tracker) self.assertEqual(len(allocator._free_space_tracker), 1, error) self.assertEqual(allocator._free_space_tracker[0].start_address, 32, error) self.assertEqual(allocator._free_space_tracker[0].size, 0x100000000 - 32, error)
def test_allocate_n_keys(self): allocator = MallocBasedRoutingInfoAllocator() self._print_keys_and_masks( allocator._allocate_keys_and_masks(None, None, 20)) error = ("Allocation has not resulted in the expected free space" " being available") print(allocator._free_space_tracker) self.assertEqual(len(allocator._free_space_tracker), 1, error) self.assertEqual(allocator._free_space_tracker[0].start_address, 32, error) self.assertEqual(allocator._free_space_tracker[0].size, 0x100000000 - 32, error)
def test_allocate_fixed_mask(self): allocator = MallocBasedRoutingInfoAllocator() try: self._print_keys_and_masks(allocator._allocate_keys_and_masks( 0xFFFFFF00, None, 20, True)) except: traceback.print_exc() self.fail("Unexpected exception is raised when allocating a key!") error = ("Allocation has not resulted in the expected free space" " being available") print allocator._free_space_tracker self.assertEqual(len(allocator._free_space_tracker), 1, error) self.assertEqual(allocator._free_space_tracker[0].start_address, 0x100, error) self.assertEqual(allocator._free_space_tracker[0].size, 0xFFFFFF00, error)