This is an automated email from the ASF dual-hosted git repository. mattsicker pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit 9c27911e4a2cb3d081db67fa816bc30e237a89bf Author: Matt Sicker <[email protected]> AuthorDate: Sat Oct 29 21:37:19 2022 -0500 Update tests for JUnit 5 Signed-off-by: Matt Sicker <[email protected]> --- .../rolling/RollingAppenderOnStartupTest.java | 77 +++++++++------------- .../async/AsyncLoggerUseAfterShutdownTest.java | 32 +++------ 2 files changed, 39 insertions(+), 70 deletions(-) diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingAppenderOnStartupTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingAppenderOnStartupTest.java index 0ad0675240..20adc79938 100644 --- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingAppenderOnStartupTest.java +++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingAppenderOnStartupTest.java @@ -16,11 +16,18 @@ */ package org.apache.logging.log4j.core.appender.rolling; -import java.io.File; +import org.apache.commons.io.file.PathUtils; +import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.core.LoggerContext; +import org.apache.logging.log4j.core.test.junit.LoggerContextSource; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + +import java.io.IOException; import java.nio.file.DirectoryStream; import java.nio.file.Files; import java.nio.file.Path; -import java.nio.file.Paths; import java.nio.file.StandardCopyOption; import java.nio.file.attribute.BasicFileAttributeView; import java.nio.file.attribute.FileTime; @@ -28,77 +35,53 @@ import java.time.Instant; import java.time.temporal.ChronoUnit; import java.util.List; -import org.apache.logging.log4j.Logger; -import org.apache.logging.log4j.core.LoggerContext; -import org.apache.logging.log4j.core.config.Configurator; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; - -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * */ public class RollingAppenderOnStartupTest { - private static final String SOURCE = "src/test/resources/__files"; - private static final String DIR = "target/onStartup"; - private static final String CONFIG = "log4j-rollOnStartup.xml"; + private static final Path SOURCE = Path.of("src", "test", "resources", "__files"); + private static final Path DIR = Path.of("target", "onStartup"); private static final String FILENAME = "onStartup.log"; private static final String PREFIX = "This is test message number "; private static final String ROLLED = "onStartup-"; - private static LoggerContext loggerContext; - - @BeforeClass - public static void beforeClass() throws Exception { - if (Files.exists(Paths.get("target/onStartup"))) { - try (DirectoryStream<Path> directoryStream = Files.newDirectoryStream(Paths.get(DIR))) { - for (final Path path : directoryStream) { - Files.delete(path); - } - Files.delete(Paths.get(DIR)); - } + @BeforeAll + static void setUp() throws IOException { + if (Files.isDirectory(DIR)) { + PathUtils.deleteDirectory(DIR); } - Files.createDirectory(new File(DIR).toPath()); - Path target = Paths.get(DIR, FILENAME); - Files.copy(Paths.get(SOURCE, FILENAME), target, StandardCopyOption.COPY_ATTRIBUTES); - FileTime newTime = FileTime.from(Instant.now().minus(1, ChronoUnit.DAYS)); + Files.createDirectory(DIR); + final Path target = Files.copy(SOURCE.resolve(FILENAME), DIR.resolve(FILENAME), StandardCopyOption.COPY_ATTRIBUTES); + final FileTime newTime = FileTime.from(Instant.now().minus(1, ChronoUnit.DAYS)); Files.getFileAttributeView(target, BasicFileAttributeView.class).setTimes(newTime, newTime, newTime); } + @AfterAll + static void tearDown() throws IOException { + PathUtils.deleteDirectory(DIR); + } + @Test - public void performTest() throws Exception { + @LoggerContextSource("log4j-rollOnStartup.xml") + public void performTest(final LoggerContext loggerContext) throws Exception { boolean rolled = false; - loggerContext = Configurator.initialize("Test", CONFIG); final Logger logger = loggerContext.getLogger(RollingAppenderOnStartupTest.class); for (int i = 3; i < 10; ++i) { logger.debug(PREFIX + i); } - try (DirectoryStream<Path> directoryStream = Files.newDirectoryStream(Paths.get(DIR))) { + try (DirectoryStream<Path> directoryStream = Files.newDirectoryStream(DIR)) { for (final Path path : directoryStream) { if (path.toFile().getName().startsWith(ROLLED)) { rolled = true; List<String> lines = Files.readAllLines(path); - assertTrue("No messages in " + path.toFile().getName(), lines.size() > 0); - assertTrue("Missing message for " + path.toFile().getName(), - lines.get(0).startsWith(PREFIX + "1")); + assertTrue(lines.size() > 0, "No messages in " + path.toFile().getName()); + assertTrue(lines.get(0).startsWith(PREFIX + "1"), "Missing message for " + path.toFile().getName()); } } } - assertTrue("File did not roll", rolled); - } - - @AfterClass - public static void afterClass() throws Exception { - Configurator.shutdown(loggerContext); - try (DirectoryStream<Path> directoryStream = Files.newDirectoryStream(Paths.get(DIR))) { - for (final Path path : directoryStream) { - Files.delete(path); - } - } - Files.delete(Paths.get(DIR)); + assertTrue(rolled, "File did not roll"); } - } diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerUseAfterShutdownTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerUseAfterShutdownTest.java index 9c1c670072..d96a29c316 100644 --- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerUseAfterShutdownTest.java +++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerUseAfterShutdownTest.java @@ -19,38 +19,24 @@ package org.apache.logging.log4j.core.async; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.apache.logging.log4j.core.test.categories.AsyncLoggers; -import org.apache.logging.log4j.core.test.CoreLoggerContexts; import org.apache.logging.log4j.core.config.ConfigurationFactory; +import org.apache.logging.log4j.core.test.CoreLoggerContexts; import org.apache.logging.log4j.core.util.Constants; import org.apache.logging.log4j.message.SimpleMessage; import org.apache.logging.log4j.spi.AbstractLogger; -import org.apache.logging.log4j.util.Strings; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; -import org.junit.experimental.categories.Category; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; +import org.junitpioneer.jupiter.SetSystemProperty; /** - * Test for https://issues.apache.org/jira/browse/LOG4J2-639 + * Test for <a href="https://issues.apache.org/jira/browse/LOG4J2-639">LOG4J2-639</a> */ -@Category(AsyncLoggers.class) +@Tag("async") +@Tag("functional") public class AsyncLoggerUseAfterShutdownTest { - - @BeforeClass - public static void beforeClass() { - System.setProperty(Constants.LOG4J_CONTEXT_SELECTOR, - AsyncLoggerContextSelector.class.getName()); - System.setProperty(ConfigurationFactory.CONFIGURATION_FILE_PROPERTY, - "AsyncLoggerTest.xml"); - } - - @AfterClass - public static void afterClass() { - System.setProperty(Constants.LOG4J_CONTEXT_SELECTOR, Strings.EMPTY); - } - @Test + @SetSystemProperty(key = Constants.LOG4J_CONTEXT_SELECTOR, value = "org.apache.logging.log4j.core.async.AsyncLoggerContextSelector") + @SetSystemProperty(key = ConfigurationFactory.CONFIGURATION_FILE_PROPERTY, value = "AsyncLoggerTest.xml") public void testNoErrorIfLogAfterShutdown() throws Exception { final Logger log = LogManager.getLogger("com.foo.Bar"); final String msg = "Async logger msg";
