From 6930a4846cd49016232041ec0308780d9cdd61dc Mon Sep 17 00:00:00 2001 From: Yannick Welsch Date: Wed, 2 Nov 2016 15:00:16 +0100 Subject: [PATCH] [TEST] Check static test state after suite scoped cluster is shut down (#21256) Checks on static test state are run by an @After method in ESTestCase. Suite-scoped tests in ESIntegTestCase only shut down in an @AfterClass method, which executes after the @After method in ESTestCase. The suite-scoped cluster can thus still execute actions that will violate the checks in @After without those being caught. A subsequent test executing within the same JVM will fail these checks however when @After gets called for that test. This commit adds an explicit call to check the static test state after the suite-scoped cluster has been shut down. --- .../main/java/org/elasticsearch/test/ESIntegTestCase.java | 1 + .../src/main/java/org/elasticsearch/test/ESTestCase.java | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/test/framework/src/main/java/org/elasticsearch/test/ESIntegTestCase.java b/test/framework/src/main/java/org/elasticsearch/test/ESIntegTestCase.java index 77c65197366..3dcbab03352 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/ESIntegTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/test/ESIntegTestCase.java @@ -1970,6 +1970,7 @@ public abstract class ESIntegTestCase extends ESTestCase { try { INSTANCE.printTestMessage("cleaning up after"); INSTANCE.afterInternal(true); + checkStaticState(); } finally { INSTANCE = null; } diff --git a/test/framework/src/main/java/org/elasticsearch/test/ESTestCase.java b/test/framework/src/main/java/org/elasticsearch/test/ESTestCase.java index f75774a7364..38eeb69d179 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/ESTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/test/ESTestCase.java @@ -237,6 +237,11 @@ public abstract class ESTestCase extends LuceneTestCase { @After public final void ensureCleanedUp() throws Exception { + checkStaticState(); + } + + // separate method so that this can be checked again after suite scoped cluster is shut down + protected static void checkStaticState() throws Exception { MockPageCacheRecycler.ensureAllPagesAreReleased(); MockBigArrays.ensureAllArraysAreReleased(); // field cache should NEVER get loaded.