@Test
  public void testRegionOnCoprocessorsWithoutChange() throws IOException {
    byte[] cf1 = Bytes.toBytes("CF1");
    byte[][] families = { cf1 };

    Configuration conf = new Configuration(CONF);
    conf.set(CoprocessorHost.REGION_COPROCESSOR_CONF_KEY,
      MetaTableMetrics.class.getCanonicalName());
    region = initHRegion(tableName, method, conf, families);
    // region service is null in unit test, we need to load the coprocessor once
    region.setCoprocessorHost(new RegionCoprocessorHost(region, null, conf));
    RegionCoprocessor regionCoprocessor =
      region.getCoprocessorHost().findCoprocessor(MetaTableMetrics.class.getName());

    // simulate when other configuration may have changed and onConfigurationChange execute once
    region.onConfigurationChange(conf);
    RegionCoprocessor regionCoprocessorAfterOnConfigurationChange =
      region.getCoprocessorHost().findCoprocessor(MetaTableMetrics.class.getName());
    assertEquals(regionCoprocessor, regionCoprocessorAfterOnConfigurationChange);
  }
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