@Override
          public void run() {
            for (int blockIndex = 0; blockIndex < blocksPerThread
              || (!cache.isEvictionInProgress()); ++blockIndex) {
              CachedItem block =
                new CachedItem(hfileName, (int) blockSize, blockCount.getAndIncrement());
              boolean inMemory = Math.random() > 0.5;
              cache.cacheBlock(block.cacheKey, block, inMemory);
            }
            cache.evictBlocksByHfileName(hfileName);
          }
Tests the concurrent LruBlockCache.
<p>
Tests will ensure it grows and shrinks in size properly, evictions run when they're supposed to
and do what they should, and that cached blocks are accessible when expected to be.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestLruBlockCache.java