public void runSmallBlockersTests(boolean isBruteOnly) {
    runSmallBlockersDiscard(create(1024, 1, 1024, false, isBruteOnly), 128, false, false);
    runSmallBlockersDiscard(create(1024, 1, 1024, false, isBruteOnly), 128, true, false);
    runSmallBlockersDiscard(create(1024, 1, 1024, false, isBruteOnly), 128, false, true);
    runSmallBlockersDiscard(create(1024, 1, 1024, false, isBruteOnly), 128, true, true);

    runSmallBlockersDiscard(create(512, 2, 1024, false, isBruteOnly), 128, false, false);
    runSmallBlockersDiscard(create(512, 2, 1024, false, isBruteOnly), 128, true, false);
    runSmallBlockersDiscard(create(512, 2, 1024, false, isBruteOnly), 128, false, true);
    runSmallBlockersDiscard(create(512, 2, 1024, false, isBruteOnly), 128, true, true);
  }
This relies on allocations basically being sequential, no internal reordering. Rather,
the specific paths it takes do; all the scenarios should work regardless of allocation.
llap-server/src/test/org/apache/hadoop/hive/llap/cache/TestBuddyAllocatorForceEvict.java