+1 This is great Bruce! I really like this approach of being able to write tests and have them run with some members with a different version. I think with this framework we should be able to just extend existing tests with subclasses that override the version of some of the VMs which I think is a good way to do the backwards compatibility testing.
One question - you modified the locator to allow old versions to join. Why was that necessary? I know we broke P2P compatibility between gemfire 8 and geode 1.0, but are we not allowing P2P compatibility going forward? I was under the impression that 1.1 was going to be compatible with 1.0. Is that not the case? Why do the tests need to have peers with different versions if we are not supporting that? Is there a way we can do these tests without having the product code behave differently when it is being tested than when it is being used normally? -Dan On Wed, Jan 18, 2017 at 3:11 PM, Bruce Schuchardt <bschucha...@pivotal.io> wrote: > I've extended the distributedTest framework to let us do > backward-compatibility testing. Once it is reviewed and committed people > will be needed to modify existing tests to run against multiple versions of > Geode. > > Here is the RB review: https://reviews.apache.org/r/55688/ > > The diff in this review includes a client/server test modified to run > against multiple versions. Basically you just need to parameterize an > existing distributedTest case to run against multiple versions using > Host.getHost(0).getVM(testVersion, vmNumber). That give you a JVM that's > set up to use the requested version. You can then use the normal > method/lambda invocation methods to run code in that JVM. > > Currently version "100" (1.0.0-incubating) is available for > backward-compatibility testing. Versions to be tested are configured in > geode-old-versions/build.gradle as source-sets. Adding a new version is > trivial. >