This is an automated email from the ASF dual-hosted git repository. dsmiley pushed a commit to branch branch_10x in repository https://gitbox.apache.org/repos/asf/solr.git
commit 447de11169e850691ecb3baa0b83a340becd5b9d Author: David Smiley <[email protected]> AuthorDate: Wed Oct 7 18:21:33 2026 -0400 SolrTestCase: reset system properties per test (#5056) (cherry picked from commit 9d7cc2884e8a843f33076e8171401e3f39d1f533) --- .../src/java/org/apache/solr/SolrTestCase.java | 20 ++++++++------------ .../src/java/org/apache/solr/SolrTestCaseJ4.java | 6 ------ 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java b/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java index 554f65b8d49..e467e583b39 100644 --- a/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java +++ b/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java @@ -57,12 +57,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * All Solr test cases should derive from this class eventually. This is originally a result of - * async logging, see: SOLR-12055 and associated. To enable async logging, we must gracefully shut - * down logging. Many Solr tests subclass LuceneTestCase. + * All Solr test cases should derive from this class. * - * <p>Rather than add the cruft from SolrTestCaseJ4 to all the Solr tests that currently subclass - * LuceneTestCase, we'll add the shutdown to this class and subclass it. + * <p><em>Be conservative in what's here; avoid arbitrary/misc utilities.</em> * * <p>Other changes that should affect every Solr test case may go here if they don't require the * added capabilities in SolrTestCaseJ4. @@ -195,11 +192,14 @@ public class SolrTestCase extends LuceneTestCase { } @AfterClass - public static void afterClassShutdownLogging() { + public static void afterClassSolrTestCase() { StartupLoggingUtils.shutdown(); + OpenTelemetryConfigurator.resetForTest(); } - @Rule public TestRule methodRules = new LogLevelTestRule(); + @Rule + public TestRule solrTestRules = + RuleChain.outerRule(new SystemPropertiesRestoreRule()).around(new LogLevelTestRule()); /** * Special hook for sanity checking if any tests trigger failures when an Assumption failure @@ -213,12 +213,8 @@ public class SolrTestCase extends LuceneTestCase { assumeFalse(PROP + " == true", systemPropertyAsBoolean(PROP, false)); } - @AfterClass - public static void afterSolrTestCase() { - OpenTelemetryConfigurator.resetForTest(); - } - // UTILITY METHODS FOLLOW + // NOTE: be very conservative in what we add! public static void assertJSONEquals(String expected, String actual) { Object json1 = fromJSONString(expected); diff --git a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java index fc9416924fa..402ce3c9633 100644 --- a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java +++ b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java @@ -22,7 +22,6 @@ import static org.hamcrest.core.StringContains.containsString; import com.carrotsearch.randomizedtesting.RandomizedContext; import com.carrotsearch.randomizedtesting.RandomizedTest; -import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.StringReader; @@ -132,9 +131,6 @@ import org.apache.zookeeper.KeeperException; import org.hamcrest.Matcher; import org.junit.AfterClass; import org.junit.BeforeClass; -import org.junit.Rule; -import org.junit.rules.RuleChain; -import org.junit.rules.TestRule; import org.noggit.CharArr; import org.noggit.JSONUtil; import org.noggit.ObjectBuilder; @@ -230,8 +226,6 @@ public abstract class SolrTestCaseJ4 extends SolrTestCase { // thread will read the latest value public static volatile SSLTestConfig sslConfig; - @Rule public TestRule solrTestRules = RuleChain.outerRule(new SystemPropertiesRestoreRule()); - @BeforeClass public static void setupTestCases() { if (ignoreExceptionMuter != null) {
