From ed02201ad93bbd0e9d23145d61a64a6b4fe93014 Mon Sep 17 00:00:00 2001 From: Mark Hanson Date: Tue, 30 Mar 2021 21:45:52 -0700 Subject: [PATCH 1/5] GEODE-8990: Cleaning up a flaky DUnit test. --- geode-assembly/build.gradle | 3 ++- .../apache/geode/session/tests/CargoTestBase.java | 4 ++++ .../tests/Jetty9CachingClientServerTest.java | 13 +++++++++---- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/geode-assembly/build.gradle b/geode-assembly/build.gradle index a5757032893d..b9fc5f649534 100755 --- a/geode-assembly/build.gradle +++ b/geode-assembly/build.gradle @@ -250,7 +250,8 @@ dependencies { distributedTestRuntimeOnly(project(':extensions:geode-modules-session-internal')) { exclude group: 'org.apache.tomcat' } - distributedTestRuntimeOnly('org.codehaus.cargo:cargo-core-uberjar') + distributedTestImplementation('org.codehaus.cargo:cargo-core-uberjar') + distributedTestRuntimeOnly('io.swagger:swagger-annotations') distributedTestRuntimeOnly(project(':geode-wan')) diff --git a/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/CargoTestBase.java b/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/CargoTestBase.java index 9d57f2202ea5..4fc8b8bac8cf 100644 --- a/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/CargoTestBase.java +++ b/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/CargoTestBase.java @@ -368,6 +368,10 @@ public void containersShouldShareDataRemovals() throws IOException, URISyntaxExc @Test public void newContainersShouldShareDataAccess() throws Exception { manager.startAllInactiveContainers(); + await().until(() -> { + ServerContainer container = manager.getContainer(0); + return container.getState().isStarted(); + }); String key = "value_testSessionAdd"; String value = "Foo"; diff --git a/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/Jetty9CachingClientServerTest.java b/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/Jetty9CachingClientServerTest.java index b41cd472ff6c..7bc9de4cb507 100644 --- a/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/Jetty9CachingClientServerTest.java +++ b/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/Jetty9CachingClientServerTest.java @@ -16,7 +16,8 @@ import static org.apache.geode.session.tests.ContainerInstall.ConnectionType.CACHING_CLIENT_SERVER; import static org.apache.geode.session.tests.GenericAppServerInstall.GenericAppServerVersion.JETTY9; -import static org.junit.Assert.assertEquals; +import static org.apache.geode.test.awaitility.GeodeAwaitility.await; +import static org.assertj.core.api.Assertions.assertThat; import java.io.IOException; import java.util.function.IntSupplier; @@ -46,13 +47,17 @@ public ContainerInstall getInstall(IntSupplier portSupplier) public void shouldCacheSessionOnClient() throws Exception { manager.startAllInactiveContainers(); - + await().until(() -> { + ServerContainer container = manager.getContainer(0); + return container.getState().isStarted(); + }); String key = "value_testSessionExpiration"; String value = "Foo"; client.setPort(Integer.parseInt(manager.getContainerPort(0))); Client.Response resp = client.set(key, value); - String cookie = resp.getSessionCookie(); + assertThat(resp.getResponse()).isEqualTo(""); + assertThat(resp.getSessionCookie()).isNotEqualTo(""); serverVM.invoke("set bogus session key", () -> { final InternalCache cache = ClusterStartupRule.memberStarter.getCache(); @@ -62,6 +67,6 @@ public void shouldCacheSessionOnClient() // Make sure the client still sees its original cached value resp = client.get(key); - assertEquals(value, resp.getResponse()); + assertThat(resp.getResponse()).isEqualTo(value); } } From e419f561457379291df060a5900538bfc8e2405d Mon Sep 17 00:00:00 2001 From: Mark Hanson Date: Tue, 6 Apr 2021 12:08:15 -0700 Subject: [PATCH 2/5] GEODE-8990: test changes --- .../java/org/apache/geode/session/tests/CargoTestBase.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/CargoTestBase.java b/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/CargoTestBase.java index 4fc8b8bac8cf..25bd168ffdb7 100644 --- a/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/CargoTestBase.java +++ b/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/CargoTestBase.java @@ -108,7 +108,7 @@ public void stop() throws IOException { manager.stopAllActiveContainers(); } finally { try { - manager.dumpLogs(); +// manager.dumpLogs(); } finally { try { manager.cleanUp(); From dbe64a5e801eb66c62b4b973716e2f4772e71128 Mon Sep 17 00:00:00 2001 From: Mark Hanson Date: Tue, 6 Apr 2021 15:24:22 -0700 Subject: [PATCH 3/5] GEODE-8990: clearing out a problem with logs filling the disk --- .../org/apache/geode/session/tests/CargoTestBase.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/CargoTestBase.java b/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/CargoTestBase.java index 25bd168ffdb7..28bfad307896 100644 --- a/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/CargoTestBase.java +++ b/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/CargoTestBase.java @@ -106,15 +106,14 @@ public void customizeContainers() throws Exception {} public void stop() throws IOException { try { manager.stopAllActiveContainers(); + } catch (Exception exception) { + manager.dumpLogs(); + throw exception; } finally { try { -// manager.dumpLogs(); + manager.cleanUp(); } finally { - try { - manager.cleanUp(); - } finally { - announceTest("END"); - } + announceTest("END"); } } } From 39c3f4b4576e78e12da5374d1a40d10d85b8236e Mon Sep 17 00:00:00 2001 From: Mark Hanson Date: Tue, 13 Apr 2021 11:01:42 -0700 Subject: [PATCH 4/5] GEODE-8990: add final to resolve a warning.. --- .../java/org/apache/geode/session/tests/CargoTestBase.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/CargoTestBase.java b/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/CargoTestBase.java index 28bfad307896..67fe5a2ab6a5 100644 --- a/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/CargoTestBase.java +++ b/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/CargoTestBase.java @@ -51,7 +51,7 @@ @Category({SessionTest.class}) public abstract class CargoTestBase { private final UniquePortSupplier portSupplier = new UniquePortSupplier(); - private static Logger logger = LogService.getLogger(); + private static final Logger logger = LogService.getLogger(); @Rule public TestName testName = new TestName(); From 5311a6081fa6318b51d719438b60da739a5dde80 Mon Sep 17 00:00:00 2001 From: Ben Ross Date: Wed, 21 Apr 2021 11:32:37 -0700 Subject: [PATCH 5/5] Extend fix to other test cases --- .../geode/session/tests/CargoTestBase.java | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/CargoTestBase.java b/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/CargoTestBase.java index 67fe5a2ab6a5..f456c796698a 100644 --- a/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/CargoTestBase.java +++ b/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/CargoTestBase.java @@ -169,6 +169,10 @@ private String getResponseValue(Client client, String key) @Test public void containersShouldReplicateCookies() throws IOException, URISyntaxException { manager.startAllInactiveContainers(); + await().until(() -> { + ServerContainer container = manager.getContainer(0); + return container.getState().isStarted(); + }); client.setPort(Integer.parseInt(manager.getContainerPort(0))); Client.Response resp = client.get(null); @@ -182,6 +186,10 @@ public void containersShouldReplicateCookies() throws IOException, URISyntaxExce @Test public void containersShouldHavePersistentSessionData() throws IOException, URISyntaxException { manager.startAllInactiveContainers(); + await().until(() -> { + ServerContainer container = manager.getContainer(0); + return container.getState().isStarted(); + }); String key = "value_testSessionPersists"; String value = "Foo"; @@ -199,6 +207,10 @@ public void containersShouldHavePersistentSessionData() throws IOException, URIS public void failureShouldStillAllowOtherContainersDataAccess() throws IOException, URISyntaxException { manager.startAllInactiveContainers(); + await().until(() -> { + ServerContainer container = manager.getContainer(0); + return container.getState().isStarted(); + }); String key = "value_testSessionPersists"; String value = "Foo"; @@ -219,6 +231,10 @@ public void failureShouldStillAllowOtherContainersDataAccess() @Test public void invalidationShouldRemoveValueAccessForAllContainers() throws Exception { manager.startAllInactiveContainers(); + await().until(() -> { + ServerContainer container = manager.getContainer(0); + return container.getState().isStarted(); + }); String key = "value_testInvalidate"; String value = "Foo"; @@ -245,6 +261,10 @@ protected void verifySessionIsRemoved(String key) throws IOException, URISyntaxE public void containersShouldExpireInSetTimeframe() throws IOException, URISyntaxException, InterruptedException { manager.startAllInactiveContainers(); + await().until(() -> { + ServerContainer container = manager.getContainer(0); + return container.getState().isStarted(); + }); String key = "value_testSessionExpiration"; String value = "Foo"; @@ -271,6 +291,10 @@ public void containersShouldExpireInSetTimeframe() public void sessionPicksUpSessionTimeoutConfiguredInWebXml() throws IOException, URISyntaxException { manager.startAllInactiveContainers(); + await().until(() -> { + ServerContainer container = manager.getContainer(0); + return container.getState().isStarted(); + }); String key = "value_testSessionExpiration"; String value = "Foo"; @@ -309,6 +333,10 @@ protected void verifyMaxInactiveInterval(int expected) throws IOException, URISy public void containersShouldShareSessionExpirationReset() throws URISyntaxException, IOException { manager.startAllInactiveContainers(); + await().until(() -> { + ServerContainer container = manager.getContainer(0); + return container.getState().isStarted(); + }); int timeToExp = 30; String key = "value_testSessionExpiration"; @@ -347,6 +375,11 @@ public void containersShouldShareSessionExpirationReset() @Test public void containersShouldShareDataRemovals() throws IOException, URISyntaxException { manager.startAllInactiveContainers(); + await().until(() -> { + ServerContainer container = manager.getContainer(0); + return container.getState().isStarted(); + }); + String key = "value_testSessionRemove"; String value = "Foo"; client.setPort(Integer.parseInt(manager.getContainerPort(0))); @@ -393,6 +426,11 @@ public void newContainersShouldShareDataAccess() throws Exception { @Test public void attributesCanBeReplaced() throws IOException, URISyntaxException { manager.startAllInactiveContainers(); + await().until(() -> { + ServerContainer container = manager.getContainer(0); + return container.getState().isStarted(); + }); + String key = "value_testSessionUpdate"; String value = "Foo"; String updateValue = "Bar";