private void validateColocationLogger_withChildRegionTree() {
    closeCache();

    try (SpyLogger spyLogger = new SpyLogger()) {
      createCache();
      createDiskStore(diskStoreName1);
      createPR_withPersistence("Parent", diskStoreName1, DEFAULT_RECOVERY_DELAY,
          DEFAULT_REDUNDANT_COPIES, DEFAULT_STARTUP_RECOVERY_DELAY);

      // Delay creation of descendant regions in the hierarchy to see missing colocated region
      // log messages (logInterval/2 < delay < logInterval)

      ArgumentCaptor<String> messageCaptor = ArgumentCaptor.forClass(String.class);

      List<Object[]> childRegionTree = childRegionTreeRestartOrder();
      for (Object[] regionInfo : childRegionTree) {
        String childRegionName = (String) regionInfo[0];
        String parentRegionName = (String) regionInfo[1];

        // delay between starting generations of child regions and verify expected logging
        verify(spyLogger.logger(),
            timeout(TIMEOUT_MILLIS))
                .accept(messageCaptor.capture());

        // Finally start the next child region
        createChildPR_withPersistence(parentRegionName, childRegionName, diskStoreName1,
            DEFAULT_RECOVERY_DELAY, DEFAULT_REDUNDANT_COPIES, DEFAULT_STARTUP_RECOVERY_DELAY);
      }

      List<String> messages = messageCaptor.getAllValues();
      assertThat(messages).hasSameSizeAs(childRegionTree);

      for (String message : messages) {
        assertThat(message).matches(PATTERN_FOR_MISSING_CHILD_LOG);
      }
    }
  }
This thread starts up multiple colocated child regions in the sequence defined by
{@link #childRegionTreeRestartOrder}. The complete startup sequence, which includes timed
periods waiting for log messages, takes at least 28 secs. Tests waiting for this
{@link SerializableCallable} to complete must have sufficient overhead in the wait for runtime
variations that exceed the minimum time to complete.
geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PersistentColocatedPartitionedRegionDistributedTest.java