@Override
    protected List<HStoreFile> doCompaction(CompactionRequestImpl cr,
      Collection<HStoreFile> filesToCompact, User user, long compactionStartTime,
      List<Path> newFiles) throws IOException {
      // let compaction incomplete.
      if (!this.conf.getBoolean("hbase.hstore.compaction.complete", true)) {
        LOG.warn("hbase.hstore.compaction.complete is set to false");
        List<HStoreFile> sfs = new ArrayList<>(newFiles.size());
        final boolean evictOnClose =
          getCacheConfig() != null ? getCacheConfig().shouldEvictOnClose() : true;
        for (Path newFile : newFiles) {
          // Create storefile around what we wrote with a reader on it.
          HStoreFile sf = storeEngine.createStoreFileAndReader(newFile);
          sf.closeStoreFile(evictOnClose);
          sfs.add(sf);
        }
        return sfs;
      }
      return super.doCompaction(cr, filesToCompact, user, compactionStartTime, newFiles);
    }
HStoreForTesting is merely the same as HStore, the difference is in the doCompaction method of
HStoreForTesting there is a checkpoint "hbase.hstore.compaction.complete" which doesn't let
hstore compaction complete. In the former edition, this config is set in HStore class inside
compact method, though this is just for testing, otherwise it doesn't do any help. In
HBASE-8518, we try to get rid of all "hbase.hstore.compaction.complete" config (except for
testing code).
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java