protected void versionTestGetAllWithVersions() {
    // this test has timing issues in no-ack
    assumeThat(getRegionAttributes().getScope().isAck()).isTrue();
    // scopes

    final String regionName = getUniqueName() + "CCRegion";

    vm0.invoke("Create Region", () -> {
      final RegionFactory<?, ?> f = getCache()
          .createRegionFactory(getRegionAttributes(RegionShortcut.LOCAL.toString()));
      f.setScope(getRegionAttributes().getScope());

      CCRegion = (LocalRegion) f.create(regionName);
    });
    vm1.invoke("Create Region", () -> {

      final RegionFactory<?, ?> f = getCache().createRegionFactory(getRegionAttributes());
      CCRegion = (LocalRegion) f.create(regionName);
    });

    vm1.invoke("Populate region and perform some ops", () -> {
      for (int i = 0; i < 100; i++) {
        CCRegion.put("cckey" + i, i);
      }
      for (int i = 0; i < 100; i++) {
        CCRegion.put("cckey" + i, i + 1);
      }
    });

    vm0.invoke("Perform getAll", () -> {
      List<String> keys = new LinkedList<>();
      for (int i = 0; i < 100; i++) {
        keys.add("cckey" + i);
      }
      @SuppressWarnings("unchecked")
      Map<String, Object> result = (Map<String, Object>) CCRegion.getAll(keys);
      assertThat(keys.size()).isEqualTo(result.size());
      LocalRegion r = CCRegion;
      for (int i = 0; i < 100; i++) {
        RegionEntry entry = r.getRegionEntry("cckey" + i);
        int stamp = entry.getVersionStamp().getEntryVersion();
        logger.info("checking key cckey" + i + " having version " + stamp + " entry=" + entry);
        assertThat(stamp).isEqualTo(2);
        assertThat(i + 1).isEqualTo(result.get("cckey" + i));
      }
    });
  }
This tests the concurrency versioning system to ensure that event conflation happens correctly
and that the statistic is being updated properly
geode-dunit/src/main/java/org/apache/geode/cache30/MultiVMRegionTestCase.java