protected static void destroyRegions(final Cache cache) {
    if (cache != null && !cache.isClosed()) {
      // try to destroy the root regions first so that we clean up any persistent files.
      try {
        for (Region<?, ?> root : cache.rootRegions()) {
          String regionFullPath = root == null ? null : root.getFullPath();
          // for colocated regions you can't locally destroy a partitioned region.
          if (root.isDestroyed() || root instanceof HARegion || root instanceof PartitionedRegion) {
            continue;
          }
          try {
            root.localDestroyRegion("teardown");
          } catch (Throwable t) {
            logger.error("Failure during tearDown destroyRegions for " + regionFullPath, t);
          }
        }
      } catch (CancelException ce) {
        logger.info("Cache is closing, no need to destroy regions");
      }
    }
  }
{@code postTearDown()} is invoked after {@link #doTearDownDistributedTestCase()}.

<p>
Override this as needed. Default implementation is empty.
geode-dunit/src/main/java/org/apache/geode/test/dunit/internal/JUnit4DistributedTestCase.java