Repository: incubator-geode Updated Branches: refs/heads/feature/e2e-testing 75521268a -> 0ff26e83d
Add a few more basic tests Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/946ff2c7 Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/946ff2c7 Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/946ff2c7 Branch: refs/heads/feature/e2e-testing Commit: 946ff2c7d764331d02385eab2eed6f5cb7af6615 Parents: 7552126 Author: Jens Deppe <[email protected]> Authored: Tue Oct 4 14:38:15 2016 -0700 Committer: Jens Deppe <[email protected]> Committed: Tue Oct 4 14:38:15 2016 -0700 ---------------------------------------------------------------------- .../test/java/org/apache/geode/e2e/GetPut.java | 3 +- .../java/org/apache/geode/e2e/GetPutSteps.java | 34 +++++++++++++++++--- .../geode/e2e/container/DockerCluster.java | 10 ++++++ .../org/apache/geode/e2e/get_put.story | 10 +++++- 4 files changed, 50 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/946ff2c7/geode-core/src/test/java/org/apache/geode/e2e/GetPut.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/org/apache/geode/e2e/GetPut.java b/geode-core/src/test/java/org/apache/geode/e2e/GetPut.java index e62194b..4b4a79f 100644 --- a/geode-core/src/test/java/org/apache/geode/e2e/GetPut.java +++ b/geode-core/src/test/java/org/apache/geode/e2e/GetPut.java @@ -11,7 +11,8 @@ import org.jbehave.core.steps.InstanceStepsFactory; public class GetPut extends JUnitStory { - // Here we specify the configuration, starting from default MostUsefulConfiguration, and changing only what is need ed + // Here we specify the configuration, starting from default MostUsefulConfiguration, + // and changing only what is needed @Override public Configuration configuration() { return new MostUsefulConfiguration() http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/946ff2c7/geode-core/src/test/java/org/apache/geode/e2e/GetPutSteps.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/org/apache/geode/e2e/GetPutSteps.java b/geode-core/src/test/java/org/apache/geode/e2e/GetPutSteps.java index bb4db31..d427670 100644 --- a/geode-core/src/test/java/org/apache/geode/e2e/GetPutSteps.java +++ b/geode-core/src/test/java/org/apache/geode/e2e/GetPutSteps.java @@ -1,8 +1,11 @@ package org.apache.geode.e2e; +import static org.apache.geode.internal.cache.execute.DistributedRegionFunctionExecutionDUnitTest.region; +import static org.bouncycastle.crypto.tls.ConnectionEnd.client; import static org.junit.Assert.assertEquals; import com.spotify.docker.client.exceptions.DockerException; +import org.apache.geode.cache.CacheClosedException; import org.apache.geode.cache.CacheFactory; import org.apache.geode.cache.Region; import org.apache.geode.cache.client.ClientCache; @@ -22,6 +25,7 @@ public class GetPutSteps { @BeforeStories public void teardownContainers() throws DockerException, InterruptedException { + // Stop and delete all current containers DockerCluster.scorch(); } @@ -47,12 +51,14 @@ public class GetPutSteps { cluster.gfshCommand(String.format("create region --name=%s --type=%s", name, type)); } + @Given("server $idx is killed") + public void killServer(int idx) throws Exception { + cluster.killServer(idx); + } + @When("I put $count entries into region $name") public void when(int count, String name) throws Exception { - ClientCache cache = new ClientCacheFactory(). - set("log-level", "warn"). - addPoolLocator("localhost", cluster.getLocatorPort()). - create(); + ClientCache cache = getClientCache(); Region region = cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(name); for (int i = 0; i < count; i++) { region.put("key_" + i, "value_" + i); @@ -61,11 +67,29 @@ public class GetPutSteps { @Then("I can get $count entries from region $name") public void then(int count, String name) throws Exception { - Region region = CacheFactory.getAnyInstance().getRegion(name); + ClientCache cache = getClientCache(); + Region region = cache.getRegion(name); for (int i = 0; i < count; i++) { assertEquals("value_" + i, region.get("key_" + i)); } } + + private ClientCache getClientCache() { + ClientCache cache; + try { + cache = ClientCacheFactory.getAnyInstance(); + return cache; + } catch (CacheClosedException ignored) { + // ignored + } + + cache = new ClientCacheFactory(). + set("log-level", "fine"). + addPoolLocator("localhost", cluster.getLocatorPort()). + create(); + + return cache; + } } http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/946ff2c7/geode-core/src/test/java/org/apache/geode/e2e/container/DockerCluster.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/org/apache/geode/e2e/container/DockerCluster.java b/geode-core/src/test/java/org/apache/geode/e2e/container/DockerCluster.java index c9a4478..875fa78 100644 --- a/geode-core/src/test/java/org/apache/geode/e2e/container/DockerCluster.java +++ b/geode-core/src/test/java/org/apache/geode/e2e/container/DockerCluster.java @@ -18,6 +18,7 @@ import com.spotify.docker.client.messages.ContainerCreation; import com.spotify.docker.client.messages.HostConfig; import com.spotify.docker.client.messages.NetworkSettings; import com.spotify.docker.client.messages.PortBinding; +import com.sun.javaws.exceptions.InvalidArgumentException; public class DockerCluster { @@ -228,6 +229,15 @@ public class DockerCluster { return locatorPort; } + public void killServer(int idx) throws DockerException, InterruptedException { + String id = nodeIds.get(idx + locatorCount); + if (id == null) { + throw new IllegalArgumentException("Could not find server with index: " + idx); + } + docker.killContainer(id); + docker.removeContainer(id); + } + public static void scorch() throws DockerException, InterruptedException { DockerClient docker = DefaultDockerClient.builder(). uri("unix:///var/run/docker.sock").build(); http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/946ff2c7/geode-core/src/test/resources/org/apache/geode/e2e/get_put.story ---------------------------------------------------------------------- diff --git a/geode-core/src/test/resources/org/apache/geode/e2e/get_put.story b/geode-core/src/test/resources/org/apache/geode/e2e/get_put.story index b981023..8cad6e9 100644 --- a/geode-core/src/test/resources/org/apache/geode/e2e/get_put.story +++ b/geode-core/src/test/resources/org/apache/geode/e2e/get_put.story @@ -1,5 +1,13 @@ Scenario: gfsh can start and manage a cluster -Given cluster is started with 1 locators and 2 servers +Given cluster is started with 1 locators and 3 servers Given region FOO is created as REPLICATE When I put 100 entries into region FOO Then I can get 100 entries from region FOO + +Given region BAR is created as PARTITION +When I put 100 entries into region BAR +Then I can get 100 entries from region BAR + +Given server 0 is killed +Then I can get 100 entries from region FOO +Then I can get 100 entries from region BAR
