@Test
  public void testDurableExpiryPeriod() throws Exception {
    vm0.invoke(() -> HAExpiryDUnitTest.createRegionQueue(Boolean.TRUE));
    vm1.invoke(() -> HAExpiryDUnitTest.createRegionQueue(Boolean.TRUE));
    vm2.invoke(() -> HAExpiryDUnitTest.createRegionQueue(Boolean.TRUE));
    vm3.invoke(() -> HAExpiryDUnitTest.createRegionQueue(Boolean.TRUE));

    vm0.invoke(new CacheSerializableRunnable("putFromVm") {

      @Override
      public void run2() throws CacheException {
        Region region = cache.getRegion(SEPARATOR + REGION_NAME);
        region.put("KEY1", "VALUE1");
      }
    });

    vm0.invoke(HAExpiryDUnitTest::checkSizeBeforeExpiration);
    vm1.invoke(HAExpiryDUnitTest::checkSizeBeforeExpiration);
    vm2.invoke(HAExpiryDUnitTest::checkSizeBeforeExpiration);
    vm3.invoke(HAExpiryDUnitTest::checkSizeBeforeExpiration);

    Wait.pause(5000); // wait for some time to make sure that we give sufficient time
    // to expiry
    // in spite of giving time the events should not expire, and queue should be
    // same as before expiration
    vm0.invoke(HAExpiryDUnitTest::checkSizeBeforeExpiration);
    vm1.invoke(HAExpiryDUnitTest::checkSizeBeforeExpiration);
    vm2.invoke(HAExpiryDUnitTest::checkSizeBeforeExpiration);
    vm3.invoke(HAExpiryDUnitTest::checkSizeBeforeExpiration);

  }
This function creates regionqueue on 4 VMs
geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HAExpiryDUnitTest.java