You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by pk...@apache.org on 2022/07/24 18:54:40 UTC
[logging-log4j2] 04/04: Adapt some tests
This is an automated email from the ASF dual-hosted git repository.
pkarwasz pushed a commit to branch parallel-tests
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit 05560945155ea3868a509d763b65d025ca32d161
Author: Piotr P. Karwasz <pi...@karwasz.org>
AuthorDate: Sun Jul 24 20:53:56 2022 +0200
Adapt some tests
Adapts some of the tests that use a logger context, but don't have a
`@LoggerContextSource` annotation.
---
.../log4j/test/junit/TestPropertySource.java | 2 +-
.../logging/log4j/core/test/junit/TestLookup.java} | 33 ++++++----
.../logging/log4j/core/BasicLoggingTest.java | 2 +
.../log4j/core/EventParameterMemoryLeakTest.java | 28 +++++----
.../log4j/core/LoggerSerializationTest.java | 2 +
.../log4j/core/appender/ConsoleAppenderTest.java | 25 ++++----
.../core/appender/OutputStreamManagerTest.java | 32 +++++-----
.../log4j/core/appender/WriterAppenderTest.java | 3 +
.../async/AsyncAppenderConfigTest_LOG4J2_2032.java | 27 ++++----
.../async/AsyncAppenderExceptionHandlingTest.java | 73 +++++++++++-----------
.../properties/PropertiesConfigurationTest.java | 2 +-
.../log4j/core/pattern/PatternParserTest.java | 2 +
.../core/util/ShutdownCallbackRegistryTest.java | 2 +-
.../AsyncAppenderExceptionHandlingTest.xml | 2 +-
14 files changed, 128 insertions(+), 107 deletions(-)
diff --git a/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/TestPropertySource.java b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/TestPropertySource.java
index 92547a463f..d8190fdf4f 100644
--- a/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/TestPropertySource.java
+++ b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/TestPropertySource.java
@@ -46,7 +46,7 @@ public class TestPropertySource implements PropertySource {
return props;
}
- private static TestProperties getProperties() {
+ public static TestProperties getProperties() {
return getProperties(null);
}
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/LoggerSerializationTest.java b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/TestLookup.java
similarity index 54%
copy from log4j-core-test/src/test/java/org/apache/logging/log4j/core/LoggerSerializationTest.java
copy to log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/TestLookup.java
index b1944ed9c9..0b2ed846bb 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/LoggerSerializationTest.java
+++ b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/TestLookup.java
@@ -14,22 +14,29 @@
* See the license for the specific language governing permissions and
* limitations under the license.
*/
-package org.apache.logging.log4j.core;
+package org.apache.logging.log4j.core.test.junit;
-import java.util.stream.Stream;
+import org.apache.logging.log4j.core.LogEvent;
+import org.apache.logging.log4j.core.lookup.Lookup;
+import org.apache.logging.log4j.core.lookup.StrLookup;
+import org.apache.logging.log4j.plugins.Plugin;
+import org.apache.logging.log4j.test.junit.TestPropertySource;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.test.AbstractSerializationTest;
-import org.junit.runners.Parameterized.Parameters;
-
-public class LoggerSerializationTest extends AbstractSerializationTest {
+/**
+ * Lookups keys from per-test properties.
+ */
+@Lookup
+@Plugin("test")
+public class TestLookup implements StrLookup {
- @Parameters
- protected Stream<Object> data() {
- return Stream.of(new LoggerContext("").getLogger("", null),
- LogManager.getRootLogger(),
- LogManager.getLogger(),
- LogManager.getLogger("test"));
+ @Override
+ public String lookup(final String key) {
+ return TestPropertySource.getProperties().getProperty(key);
}
+ @Override
+ public String lookup(final LogEvent event, final String key) {
+ return lookup(key);
+ }
}
+
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/BasicLoggingTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/BasicLoggingTest.java
index 568cf066dd..69091ede43 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/BasicLoggingTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/BasicLoggingTest.java
@@ -18,10 +18,12 @@ package org.apache.logging.log4j.core;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
@Tag("smoke")
+@LoggerContextSource
public class BasicLoggingTest {
@Test
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/EventParameterMemoryLeakTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/EventParameterMemoryLeakTest.java
index 76c1b64e12..fa9b1a9da1 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/EventParameterMemoryLeakTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/EventParameterMemoryLeakTest.java
@@ -16,12 +16,10 @@
*/
package org.apache.logging.log4j.core;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.core.test.CoreLoggerContexts;
-import org.junit.jupiter.api.Tag;
-import org.junit.jupiter.api.Test;
-import org.junitpioneer.jupiter.SetSystemProperty;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.containsString;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.BufferedReader;
import java.io.File;
@@ -30,21 +28,25 @@ import java.lang.ref.Cleaner;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.containsString;
-import static org.junit.jupiter.api.Assertions.assertNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.core.test.CoreLoggerContexts;
+import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
+import org.apache.logging.log4j.test.junit.CleanUpFiles;
+import org.apache.logging.log4j.test.junit.SetTestProperty;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
@Tag("functional")
-@SetSystemProperty(key = "log4j2.enable.direct.encoders", value = "true")
-@SetSystemProperty(key = "log4j2.configurationFile", value = "EventParameterMemoryLeakTest.xml")
public class EventParameterMemoryLeakTest {
@Test
+ @SetTestProperty(key = "log4j2.enable.direct.encoders", value = "true")
+ @CleanUpFiles("target/EventParameterMemoryLeakTest.log")
+ @LoggerContextSource(value = "EventParameterMemoryLeakTest.xml")
@SuppressWarnings("UnusedAssignment") // parameter set to null to allow garbage collection
public void testParametersAreNotLeaked() throws Exception {
final File file = new File("target", "EventParameterMemoryLeakTest.log");
- assertTrue(!file.exists() || file.delete(), "Deleted old file before test");
final Logger log = LogManager.getLogger("com.foo.Bar");
CountDownLatch latch = new CountDownLatch(1);
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/LoggerSerializationTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/LoggerSerializationTest.java
index b1944ed9c9..95a3611009 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/LoggerSerializationTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/LoggerSerializationTest.java
@@ -19,12 +19,14 @@ package org.apache.logging.log4j.core;
import java.util.stream.Stream;
import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
import org.apache.logging.log4j.test.AbstractSerializationTest;
import org.junit.runners.Parameterized.Parameters;
public class LoggerSerializationTest extends AbstractSerializationTest {
@Parameters
+ @LoggerContextSource
protected Stream<Object> data() {
return Stream.of(new LoggerContext("").getLogger("", null),
LogManager.getRootLogger(),
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/ConsoleAppenderTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/ConsoleAppenderTest.java
index 148d079427..36a6846ce2 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/ConsoleAppenderTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/ConsoleAppenderTest.java
@@ -16,6 +16,18 @@
*/
package org.apache.logging.log4j.core.appender;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.BDDMockito.then;
+import static org.mockito.Mockito.atLeastOnce;
+
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.core.Layout;
import org.apache.logging.log4j.core.LogEvent;
@@ -23,25 +35,16 @@ import org.apache.logging.log4j.core.appender.ConsoleAppender.Target;
import org.apache.logging.log4j.core.impl.Log4jLogEvent;
import org.apache.logging.log4j.core.layout.PatternLayout;
import org.apache.logging.log4j.message.SimpleMessage;
+import org.apache.logging.log4j.test.junit.SetTestProperty;
import org.apache.logging.log4j.util.Strings;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
-import org.junitpioneer.jupiter.SetSystemProperty;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
-import java.io.ByteArrayOutputStream;
-import java.io.PrintStream;
-
-import static org.junit.jupiter.api.Assertions.*;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.BDDMockito.then;
-import static org.mockito.Mockito.atLeastOnce;
-
@ExtendWith(MockitoExtension.class)
-@SetSystemProperty(key = "log4j.skipJansi", value = "true")
+@SetTestProperty(key = "log4j.skipJansi", value = "true")
public class ConsoleAppenderTest {
ByteArrayOutputStream baos;
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/OutputStreamManagerTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/OutputStreamManagerTest.java
index 1064323c8a..8de34f5e92 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/OutputStreamManagerTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/OutputStreamManagerTest.java
@@ -17,21 +17,23 @@
package org.apache.logging.log4j.core.appender;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Optional;
+
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
import org.apache.logging.log4j.status.StatusData;
-import org.apache.logging.log4j.status.StatusLogger;
+import org.apache.logging.log4j.test.StatusMessages;
+import org.apache.logging.log4j.test.junit.UsingStatusLogger;
import org.junit.jupiter.api.Test;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.List;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-
/**
* OutputStreamManager Tests.
*/
@@ -39,17 +41,15 @@ public class OutputStreamManagerTest {
@Test
@LoggerContextSource("multipleIncompatibleAppendersTest.xml")
- public void narrow(final LoggerContext context) {
+ @UsingStatusLogger
+ public void narrow(final LoggerContext context, final StatusMessages messages) {
final Logger logger = context.getLogger(OutputStreamManagerTest.class);
logger.info("test");
- final List<StatusData> statusData = StatusLogger.getLogger().getStatusData();
- StatusData data = statusData.get(0);
- if (data.getMessage().getFormattedMessage().contains("WindowsAnsiOutputStream")) {
- data = statusData.get(1);
- }
- assertEquals(Level.ERROR, data.getLevel());
+ final Optional<StatusData> error = messages.findStatusMessages(Level.ERROR, "RollingRandomAccessFile")
+ .findFirst();
+ assertTrue(error.isPresent(), "Missing error message");
assertEquals("Could not configure plugin element RollingRandomAccessFile: org.apache.logging.log4j.core.config.ConfigurationException: Configuration has multiple incompatible Appenders pointing to the same resource 'target/multiIncompatibleAppender.log'",
- data.getMessage().getFormattedMessage());
+ error.get().getMessage().getFormattedMessage());
}
@Test
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/WriterAppenderTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/WriterAppenderTest.java
index 392862e535..365eddc376 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/WriterAppenderTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/WriterAppenderTest.java
@@ -30,6 +30,8 @@ import org.apache.logging.log4j.core.Appender;
import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.config.Configuration;
import org.apache.logging.log4j.core.layout.PatternLayout;
+import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
+import org.apache.logging.log4j.core.test.junit.ReconfigurationPolicy;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInfo;
@@ -40,6 +42,7 @@ import static org.hamcrest.Matchers.containsString;
/**
* Tests {@link WriterAppender}.
*/
+@LoggerContextSource(reconfigure = ReconfigurationPolicy.BEFORE_EACH)
public class WriterAppenderTest {
private static final String TEST_MSG = "FOO ERROR";
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/AsyncAppenderConfigTest_LOG4J2_2032.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/AsyncAppenderConfigTest_LOG4J2_2032.java
index 378f655a21..d831ebe656 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/AsyncAppenderConfigTest_LOG4J2_2032.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/AsyncAppenderConfigTest_LOG4J2_2032.java
@@ -16,35 +16,36 @@
*/
package org.apache.logging.log4j.core.async;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.test.CoreLoggerContexts;
+import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
import org.apache.logging.log4j.test.junit.CleanUpFiles;
+import org.apache.logging.log4j.test.junit.SetTestProperty;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
-import org.junitpioneer.jupiter.SetSystemProperty;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-
-import static org.junit.jupiter.api.Assertions.assertTrue;
@Tag("async")
-@SetSystemProperty(key = "log4j2.logEventFactory", value = "org.apache.logging.log4j.core.impl.ReusableLogEventFactory")
-@SetSystemProperty(key = "log4j2.messageFactory", value = "org.apache.logging.log4j.message.ReusableMessageFactory")
-@SetSystemProperty(key = "log4j2.configurationFile", value = "AsyncAppenderConfigTest-LOG4J2-2032.xml")
+@SetTestProperty(key = "log4j2.logEventFactory", value = "org.apache.logging.log4j.core.impl.ReusableLogEventFactory")
+@SetTestProperty(key = "log4j2.messageFactory", value = "org.apache.logging.log4j.message.ReusableMessageFactory")
public class AsyncAppenderConfigTest_LOG4J2_2032 {
@Test
@CleanUpFiles("target/AsyncAppenderConfigTest-LOG4J2-2032.log")
- public void doNotProcessPlaceholdersTwice() throws Exception {
+ @LoggerContextSource("AsyncAppenderConfigTest-LOG4J2-2032.xml")
+ public void doNotProcessPlaceholdersTwice(LoggerContext context) throws Exception {
final File file = new File("target", "AsyncAppenderConfigTest-LOG4J2-2032.log");
- assertTrue(!file.exists() || file.delete(), "Deleted old file before test");
final Logger log = LogManager.getLogger("com.foo.Bar");
log.info("Text containing curly braces: {}", "Curly{}");
- CoreLoggerContexts.stopLoggerContext(file); // stop async thread
+ context.stop(); // stop async thread
try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
final String line1 = reader.readLine();
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/AsyncAppenderExceptionHandlingTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/AsyncAppenderExceptionHandlingTest.java
index f2fb9042f4..ec29697c25 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/AsyncAppenderExceptionHandlingTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/AsyncAppenderExceptionHandlingTest.java
@@ -16,6 +16,10 @@
*/
package org.apache.logging.log4j.core.async;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
import org.apache.logging.log4j.core.Appender;
import org.apache.logging.log4j.core.LogEvent;
import org.apache.logging.log4j.core.Logger;
@@ -23,18 +27,16 @@ import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.appender.AsyncAppender;
import org.apache.logging.log4j.core.config.AppenderControl;
import org.apache.logging.log4j.core.config.Configuration;
-import org.apache.logging.log4j.core.config.Configurator;
-import org.apache.logging.log4j.message.Message;
import org.apache.logging.log4j.core.test.appender.FailOnceAppender;
-import org.apache.logging.log4j.util.Strings;
+import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
+import org.apache.logging.log4j.core.util.NetUtils;
+import org.apache.logging.log4j.message.Message;
+import org.apache.logging.log4j.test.TestProperties;
+import org.apache.logging.log4j.test.junit.UsingTestProperties;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-
/**
* Verifies {@link AsyncAppender} works after certain type of {@link Appender}
* failures.
@@ -55,43 +57,40 @@ class AsyncAppenderExceptionHandlingTest {
FailOnceAppender.ThrowableClassName.THROWABLE,
FailOnceAppender.ThrowableClassName.THREAD_DEATH
})
- void AsyncAppender_should_not_stop_on_appender_failures(String throwableClassName) {
+ @LoggerContextSource
+ @UsingTestProperties
+ void AsyncAppender_should_not_stop_on_appender_failures(String throwableClassName, TestProperties props, LoggerContext loggerContext) {
// Create the logger.
final String throwableClassNamePropertyName = "throwableClassName";
- System.setProperty(throwableClassNamePropertyName, throwableClassName);
- try (final LoggerContext loggerContext =
- Configurator.initialize("Test", "AsyncAppenderExceptionHandlingTest.xml")) {
- final Logger logger = loggerContext.getRootLogger();
-
- // Log the 1st message, which should fail due to the FailOnceAppender.
- logger.info("message #1");
+ props.setProperty(throwableClassNamePropertyName, throwableClassName);
+ loggerContext.setConfigLocation(NetUtils.toURI("classpath:AsyncAppenderExceptionHandlingTest.xml"));
+ final Logger logger = loggerContext.getRootLogger();
- // Log the 2nd message, which should succeed.
- final String lastLogMessage = "message #2";
- logger.info(lastLogMessage);
+ // Log the 1st message, which should fail due to the FailOnceAppender.
+ logger.info("message #1");
- // Stop the AsyncAppender to drain the queued events.
- Configuration configuration = loggerContext.getConfiguration();
- AsyncAppender asyncAppender = configuration.getAppender("Async");
- Assertions.assertNotNull(asyncAppender, "couldn't obtain the FailOnceAppender");
- asyncAppender.stop();
+ // Log the 2nd message, which should succeed.
+ final String lastLogMessage = "message #2";
+ logger.info(lastLogMessage);
- // Verify the logged message.
- final FailOnceAppender failOnceAppender = configuration.getAppender("FailOnce");
- Assertions.assertNotNull(failOnceAppender, "couldn't obtain the FailOnceAppender");
- Assertions.assertTrue(failOnceAppender.isFailed(), "FailOnceAppender hasn't failed yet");
- final List<String> accumulatedMessages = failOnceAppender
- .drainEvents()
- .stream()
- .map(LogEvent::getMessage)
- .map(Message::getFormattedMessage)
- .collect(Collectors.toList());
- Assertions.assertEquals(Collections.singletonList(lastLogMessage), accumulatedMessages);
+ // Stop the AsyncAppender to drain the queued events.
+ Configuration configuration = loggerContext.getConfiguration();
+ AsyncAppender asyncAppender = configuration.getAppender("Async");
+ Assertions.assertNotNull(asyncAppender, "couldn't obtain the FailOnceAppender");
+ asyncAppender.stop();
- } finally {
- System.setProperty(throwableClassNamePropertyName, Strings.EMPTY);
- }
+ // Verify the logged message.
+ final FailOnceAppender failOnceAppender = configuration.getAppender("FailOnce");
+ Assertions.assertNotNull(failOnceAppender, "couldn't obtain the FailOnceAppender");
+ Assertions.assertTrue(failOnceAppender.isFailed(), "FailOnceAppender hasn't failed yet");
+ final List<String> accumulatedMessages = failOnceAppender
+ .drainEvents()
+ .stream()
+ .map(LogEvent::getMessage)
+ .map(Message::getFormattedMessage)
+ .collect(Collectors.toList());
+ Assertions.assertEquals(Collections.singletonList(lastLogMessage), accumulatedMessages);
}
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/properties/PropertiesConfigurationTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/properties/PropertiesConfigurationTest.java
index 4b384782de..a035f2439a 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/properties/PropertiesConfigurationTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/properties/PropertiesConfigurationTest.java
@@ -132,8 +132,8 @@ class PropertiesConfigurationTest {
assertEquals(1, firstEvents.size());
}
- @SetSystemProperty(key = "coreProps", value = "DEBUG, first, second")
@Test
+ @SetSystemProperty(key = "coreProps", value = "DEBUG, first, second")
@LoggerContextSource("LoggerLevelSysPropsAppenderTest.properties")
void testLoggerLevelSysPropsAppender(final LoggerContext context, @Named final ListAppender first,
@Named final ListAppender second, @Named final ListAppender third) {
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/pattern/PatternParserTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/pattern/PatternParserTest.java
index c5d0f78b16..099c907e6b 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/pattern/PatternParserTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/pattern/PatternParserTest.java
@@ -29,6 +29,7 @@ import org.apache.logging.log4j.core.config.NullConfiguration;
import org.apache.logging.log4j.core.impl.ContextDataFactory;
import org.apache.logging.log4j.core.impl.Log4jLogEvent;
import org.apache.logging.log4j.core.impl.ThrowableFormatOptions;
+import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
import org.apache.logging.log4j.core.time.SystemNanoClock;
import org.apache.logging.log4j.core.time.internal.DummyNanoClock;
import org.apache.logging.log4j.message.SimpleMessage;
@@ -39,6 +40,7 @@ import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
+@LoggerContextSource
public class PatternParserTest {
static String OUTPUT_FILE = "output/PatternParser";
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/util/ShutdownCallbackRegistryTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/util/ShutdownCallbackRegistryTest.java
index 93091019b6..2656194a37 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/util/ShutdownCallbackRegistryTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/util/ShutdownCallbackRegistryTest.java
@@ -42,7 +42,7 @@ public class ShutdownCallbackRegistryTest {
}
@Test
- @LoggerContextSource(value = "ShutdownCallbackRegistryTest.xml", bootstrap = true)
+ @LoggerContextSource(value = "ShutdownCallbackRegistryTest.xml")
public void testShutdownCallbackRegistry(final LoggerContext context) {
assertTrue(context.isStarted(), "LoggerContext should be started");
assertThat(Registry.CALLBACKS, hasSize(1));
diff --git a/log4j-core-test/src/test/resources/AsyncAppenderExceptionHandlingTest.xml b/log4j-core-test/src/test/resources/AsyncAppenderExceptionHandlingTest.xml
index 84764fe8ab..11e32e78d9 100644
--- a/log4j-core-test/src/test/resources/AsyncAppenderExceptionHandlingTest.xml
+++ b/log4j-core-test/src/test/resources/AsyncAppenderExceptionHandlingTest.xml
@@ -19,7 +19,7 @@
-->
<Configuration status="OFF" name="AsyncAppenderExceptionHandlingTest">
<Appenders>
- <FailOnce name="FailOnce" throwableClassName="${sys:throwableClassName}"/>
+ <FailOnce name="FailOnce" throwableClassName="${test:throwableClassName}"/>
<Async name="Async">
<AppenderRef ref="FailOnce" />
</Async>