private void checkClientReceivedGC(VM vm) {
    vm.invoke(new SerializableCallable("check that GC happened") {
      @Override
      public Object call() throws Exception {
        WaitCriterion wc = new WaitCriterion() {

          @Override
          public boolean done() {
            getLogWriter()
                .info("tombstone count = " + TestRegion.getTombstoneCount());
            getLogWriter().info("region size = " + TestRegion.size());
            return TestRegion.getTombstoneCount() == 0 && TestRegion.size() == 0;
          }

          @Override
          public String description() {
            return "waiting for garbage collection to occur";
          }
        };
        GeodeAwaitility.await().untilAsserted(wc);
        return null;
      }
    });
  }
test that distributed GC messages are properly cleaned out of durable client HA queues
geode-core/src/distributedTest/java/org/apache/geode/cache30/ClientServerCCEDUnitTest.java