----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/55688/ -----------------------------------------------------------
Review request for geode, Galen O'Sullivan, Hitesh Khamesra, and Udo Kohlmeyer. Bugs: GEODE-1965 https://issues.apache.org/jira/browse/GEODE-1965 Repository: geode Description ------- The DUnit distributed unit test framework is extended to have Host.getHost(x).getVM(version, vmNumber), allowing you to launch a managed JVM running the given version of Geode. A new class, VersionManager, loads the versions available to test against and can be used to parameterize a class to run against all available versions or to check whether a version is available for testing. I've modified a client/server test to show how this is done. Available versions are created as Gradle source-sets in the new geode-old-versions submodule. This submodule has no source files at present. All test classes are compiled against the current version of Geode but are run with old versions when run in a VM obtained through Host.getHost(x).getVM(oldVersion, vmNumber). Versions are of the form "100", "110", "120" etc. The current version is VersionManager.CURRENT_VERSION, which has the value "000". The DUnit Locator process has been modified to allow peers to start up using old versions of Geode. This isn't normally allowed, but this modification makes it easier to test peer-to-peer algorithms that have been modified or peer-to-peer messages that have a new on-wire format. Diffs ----- geode-core/build.gradle 49dd84b387867e0189892ba096d35a2483c0ee37 geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/membership/GMSJoinLeave.java 7da9de439e28756815e0c5ce3539578c02f22e8f geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscDUnitTest.java 391653cf1f1b9dbcc7bca5232bf6f230d81dc230 geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscSelectorDUnitTest.java e177b793cc252038cd8e892be07181ec867d44ed geode-core/src/test/java/org/apache/geode/test/dunit/DUnitEnv.java efc196f7998a4ed7410c44346c421e1d8b07d854 geode-core/src/test/java/org/apache/geode/test/dunit/Host.java 43cbccf931e43b1f98c42f82955f824c67279109 geode-core/src/test/java/org/apache/geode/test/dunit/Invoke.java a09f5ff965ec5e705b41b9b94927be919c07afc7 geode-core/src/test/java/org/apache/geode/test/dunit/VM.java 04d29511201fb52b4347c6287f427c3d1a81595f geode-core/src/test/java/org/apache/geode/test/dunit/standalone/ChildVM.java b85d0b55705ba040f6f954a9847ac00f3a334252 geode-core/src/test/java/org/apache/geode/test/dunit/standalone/DUnitLauncher.java 8587ea5e34df82036dbca94602ed2276cef73ca8 geode-core/src/test/java/org/apache/geode/test/dunit/standalone/ProcessManager.java c3c33d04014b173d45bf4bbf7c74a10fc0cc1335 geode-core/src/test/java/org/apache/geode/test/dunit/standalone/StandAloneDUnitEnv.java 3d554edf30c3f703d891f624035c6e918ab16a5b geode-core/src/test/java/org/apache/geode/test/dunit/standalone/VersionManager.java PRE-CREATION geode-old-versions/build.gradle PRE-CREATION settings.gradle 8e2673a7750ffaf03d9b00778b93fde7831fa0e4 Diff: https://reviews.apache.org/r/55688/diff/ Testing ------- Thanks, Bruce Schuchardt