From 42a461b678f89467c7b774cc12fe1d9bdcc42512 Mon Sep 17 00:00:00 2001 From: Kenneth Geisshirt Date: Sun, 7 Jun 2026 15:20:45 +0200 Subject: [PATCH 1/3] Test: shutdown of test cluster --- .../java/io/crate/testing/ShutdownTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/main/java/io/crate/testing/ShutdownTest.java diff --git a/src/main/java/io/crate/testing/ShutdownTest.java b/src/main/java/io/crate/testing/ShutdownTest.java new file mode 100644 index 0000000..513470d --- /dev/null +++ b/src/main/java/io/crate/testing/ShutdownTest.java @@ -0,0 +1,30 @@ +import io.crate.testing.CrateTestCluster; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.CoreMatchers.is; + +public class ShutdownTest { + + private static CrateTestCluster testCluster; + + @BeforeClass + public static void setUpClusterAndAgent() throws Throwable { + testCluster = CrateTestCluster.fromURL("https://cdn.crate.io/downloads/releases/nightly/crate-latest.tar.gz") + .keepWorkingDir(false) + .build(); + testCluster.before(); + } + + @AfterClass + public static void tearDown() { + testCluster.after(); + } + + @Test + public void test() { + assertThat(true, is(false)); + } +} From 51771472ef25154de04bf5ed582ec01640f0ef2e Mon Sep 17 00:00:00 2001 From: Kenneth Geisshirt Date: Sun, 7 Jun 2026 17:26:38 +0200 Subject: [PATCH 2/3] move --- src/{main => test}/java/io/crate/testing/ShutdownTest.java | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/{main => test}/java/io/crate/testing/ShutdownTest.java (100%) diff --git a/src/main/java/io/crate/testing/ShutdownTest.java b/src/test/java/io/crate/testing/ShutdownTest.java similarity index 100% rename from src/main/java/io/crate/testing/ShutdownTest.java rename to src/test/java/io/crate/testing/ShutdownTest.java From 3a30541586ca8ca765ea4052650ef0487ea39116 Mon Sep 17 00:00:00 2001 From: Kenneth Geisshirt Date: Mon, 8 Jun 2026 15:56:22 +0200 Subject: [PATCH 3/3] Throw exception is process has not been terminated --- src/main/java/io/crate/testing/CrateTestCluster.java | 1 + src/main/java/io/crate/testing/CrateTestServer.java | 7 +++++++ src/test/java/io/crate/testing/ShutdownTest.java | 3 ++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/crate/testing/CrateTestCluster.java b/src/main/java/io/crate/testing/CrateTestCluster.java index 22916ca..8f237e9 100644 --- a/src/main/java/io/crate/testing/CrateTestCluster.java +++ b/src/main/java/io/crate/testing/CrateTestCluster.java @@ -442,6 +442,7 @@ public void after() { CrateTestServer[] localServers = serversSafe(); for (CrateTestServer server : localServers) { server.after(); + assert !server.isAlive(); } try { removeCrateDir(); diff --git a/src/main/java/io/crate/testing/CrateTestServer.java b/src/main/java/io/crate/testing/CrateTestServer.java index 53e90f9..dc25cb9 100644 --- a/src/main/java/io/crate/testing/CrateTestServer.java +++ b/src/main/java/io/crate/testing/CrateTestServer.java @@ -135,6 +135,13 @@ protected void after() { } } + public Boolean isAlive() { + if (crateProcess == null) { + return false; + } + return crateProcess.isAlive(); + } + private long startCrateAsDaemon() throws IOException, InterruptedException { Map settingsMap = prepareSettings(); diff --git a/src/test/java/io/crate/testing/ShutdownTest.java b/src/test/java/io/crate/testing/ShutdownTest.java index 513470d..a688b9c 100644 --- a/src/test/java/io/crate/testing/ShutdownTest.java +++ b/src/test/java/io/crate/testing/ShutdownTest.java @@ -20,11 +20,12 @@ public static void setUpClusterAndAgent() throws Throwable { @AfterClass public static void tearDown() { + // if cluster cannot be terminated, an expection will be thrown testCluster.after(); } @Test public void test() { - assertThat(true, is(false)); + assertThat(true, is(true)); } }