示例#1
0
  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);
  }
示例#2
0
 private void deallocate(HandleDataStore hds, int handle) {
   hds.deallocate(handle);
   assertTrue(!hds.isAllocated(handle));
 }