From be863249322f63a847094d1865f093d3904f9808 Mon Sep 17 00:00:00 2001 From: Jens Deppe Date: Thu, 7 Feb 2019 06:44:51 -0800 Subject: [PATCH 1/2] GEODE-6370: Clean up LogWrapper between tests - This avoids subsequent tests failing because they are checking for the presence of LogWrapper. --- .../cli/shell/GfshAbstractUnitTest.java | 24 +++++++++++++++++++ .../cli/shell/GfshConsoleModeUnitTest.java} | 16 ++++++++----- 2 files changed, 34 insertions(+), 6 deletions(-) rename geode-core/src/{integrationTest/java/org/apache/geode/management/internal/cli/shell/GfshConsoleModeIntegrationTest.java => test/java/org/apache/geode/management/internal/cli/shell/GfshConsoleModeUnitTest.java} (88%) diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/shell/GfshAbstractUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/shell/GfshAbstractUnitTest.java index e732df2e4bcc..e06226464a11 100644 --- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/shell/GfshAbstractUnitTest.java +++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/shell/GfshAbstractUnitTest.java @@ -20,6 +20,11 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; +import java.util.Enumeration; +import java.util.logging.LogManager; +import java.util.logging.Logger; + +import org.junit.After; import org.junit.Before; import org.junit.Test; import org.springframework.shell.core.CommandResult; @@ -36,6 +41,25 @@ public void before() { testString = "This is a test string."; } + @After + public void after() { + // This removes and cleans up the LogWrapper instance so that subsequent tests don't fail. + removeLogWrapper(); + } + + void removeLogWrapper() { + Logger rootLogger = LogManager.getLogManager().getLogger(""); + + for (Enumeration enumeration = LogManager.getLogManager().getLoggerNames(); enumeration + .hasMoreElements();) { + String loggerName = enumeration.nextElement(); + Logger logger = Logger.getLogger(loggerName); + if (logger.getParent() != null && logger.getParent().getName().endsWith(".LogWrapper")) { + logger.setParent(rootLogger); + } + } + } + @Test public void testWrapTest() { assertThat(Gfsh.wrapText(testString, 0, -1)).isEqualTo(testString); diff --git a/geode-core/src/integrationTest/java/org/apache/geode/management/internal/cli/shell/GfshConsoleModeIntegrationTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/shell/GfshConsoleModeUnitTest.java similarity index 88% rename from geode-core/src/integrationTest/java/org/apache/geode/management/internal/cli/shell/GfshConsoleModeIntegrationTest.java rename to geode-core/src/test/java/org/apache/geode/management/internal/cli/shell/GfshConsoleModeUnitTest.java index f0a5988bb655..34d12cf6cd7f 100644 --- a/geode-core/src/integrationTest/java/org/apache/geode/management/internal/cli/shell/GfshConsoleModeIntegrationTest.java +++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/shell/GfshConsoleModeUnitTest.java @@ -21,18 +21,22 @@ import java.util.logging.LogManager; import java.util.logging.Logger; +import org.junit.Before; import org.junit.Test; -public class GfshConsoleModeIntegrationTest { +public class GfshConsoleModeUnitTest extends GfshAbstractUnitTest { + + @Override + @Before + public void before() { + super.before(); + gfsh = new Gfsh(true, null, new GfshConfig()); + } - /** - * This test should remain an integration test as it checks the state of various Loggers. - * If run in conjunction with other (Gfsh) tests, these checks may fail. - */ @Test public void consoleModeShouldRedirectOnlyJDKLoggers() { - Gfsh gfsh = new Gfsh(true, null, new GfshConfig()); + gfsh = new Gfsh(true, null, new GfshConfig()); LogManager logManager = LogManager.getLogManager(); Enumeration loggerNames = logManager.getLoggerNames(); // when initialized in console mode, all log messages will show up in console From 01354ac08e06d7d009963f682404a57b39d4e916 Mon Sep 17 00:00:00 2001 From: Jens Deppe Date: Thu, 7 Feb 2019 14:58:40 -0800 Subject: [PATCH 2/2] Trigger CI