public void testFreeAllocation() { HandleDataStore hds = new HandleDataStore(); allocate(hds, 1); allocate(hds, 3); allocate(hds, 2); allocate(hds, 10); allocate(hds, 100); allocate(hds, 1000); deallocate(hds, 100); deallocate(hds, 1); deallocate(hds, 1000); allocate(hds, 1003); allocate(hds, 1000); int h = hds.preallocate(); assertEquals(0, hds.allocate(h)); hds.deallocate(h, true); h = hds.allocate(); hds.deallocate(h); int[] right = new int[] {3, 2, 10, 1003, 1000}; h = hds.first(); int pos = 0; do { assertEquals(right[pos++], h); h = hds.next(h); } while (h != 0 && pos < right.length); assertEquals(0, h); assertEquals(right.length, pos); }
private void deallocate(HandleDataStore hds, int handle) { hds.deallocate(handle); assertTrue(!hds.isAllocated(handle)); }