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 2024/04/03 12:16:58 UTC

(logging-log4j2) branch main updated: Fix Windows test failure

This is an automated email from the ASF dual-hosted git repository.

pkarwasz pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git


The following commit(s) were added to refs/heads/main by this push:
     new 5a04e527b7 Fix Windows test failure
5a04e527b7 is described below

commit 5a04e527b7065e561084c837434dec1db30a1017
Author: Piotr P. Karwasz <pi...@karwasz.org>
AuthorDate: Wed Apr 3 14:16:52 2024 +0200

    Fix Windows test failure
---
 .../appender/rolling/RollingAppenderCronTest.java  | 62 +++++++++++++---------
 .../rolling/RollingAppenderCronTest.new.xml}       |  0
 .../rolling/RollingAppenderCronTest.old.xml}       |  5 +-
 3 files changed, 40 insertions(+), 27 deletions(-)

diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingAppenderCronTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingAppenderCronTest.java
index 7398c87c81..d1262d1687 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingAppenderCronTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingAppenderCronTest.java
@@ -16,11 +16,12 @@
  */
 package org.apache.logging.log4j.core.appender.rolling;
 
+import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
+import static java.util.Objects.requireNonNull;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
-import java.io.File;
-import java.io.OutputStream;
+import java.net.URISyntaxException;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.concurrent.CountDownLatch;
@@ -30,44 +31,55 @@ import org.apache.logging.log4j.core.appender.RollingFileAppender;
 import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
 import org.apache.logging.log4j.core.util.CronExpression;
 import org.apache.logging.log4j.plugins.Named;
-import org.apache.logging.log4j.test.junit.CleanUpDirectories;
+import org.apache.logging.log4j.test.junit.TempLoggingDir;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.junitpioneer.jupiter.DisabledUntil;
+import org.opentest4j.TestAbortedException;
 
-/**
- *
- */
-@DisabledUntil(date = "2024-04-01", reason = "Temporarily disabled due to deadlocks.")
-public class RollingAppenderCronTest extends AbstractRollingListenerTest {
+class RollingAppenderCronTest extends AbstractRollingListenerTest {
+
+    private static final Path CONFIG;
+
+    static {
+        try {
+            CONFIG = Path.of(requireNonNull(RollingAppenderCronTest.class.getResource("RollingAppenderCronTest.xml"))
+                    .toURI());
+        } catch (final URISyntaxException e) {
+            throw new TestAbortedException("Unable to compute configuration location.", e);
+        }
+    }
 
-    private static final String CONFIG = "log4j-rolling-cron.xml";
-    private static final String DIR = "target/rolling-cron";
-    private static final String FILE = "target/rolling-cron/rollingtest.log";
     private final CountDownLatch rollover = new CountDownLatch(2);
     private final CountDownLatch reconfigured = new CountDownLatch(1);
 
+    @TempLoggingDir
+    private static Path loggingPath;
+
+    @BeforeEach
+    void beforeEach() throws Exception {
+        final Path src =
+                Path.of(requireNonNull(RollingAppenderCronTest.class.getResource("RollingAppenderCronTest.old.xml"))
+                        .toURI());
+        Files.copy(src, CONFIG, REPLACE_EXISTING);
+    }
+
     @Test
-    @CleanUpDirectories(DIR)
-    @LoggerContextSource(value = CONFIG, timeout = 10)
+    @LoggerContextSource(timeout = 10)
     public void testAppender(final LoggerContext context, @Named("RollingFile") final RollingFileManager manager)
             throws Exception {
         manager.addRolloverListener(this);
         final Logger logger = context.getLogger(getClass());
-        final File file = new File(FILE);
-        assertThat(file).exists();
+        assertThat(loggingPath.resolve("rollingtest.log")).exists();
         logger.debug("This is test message number 1");
         rollover.await();
+        assertThat(loggingPath).isNotEmptyDirectory().isDirectoryContaining("glob:**.gz");
 
-        final File dir = new File(DIR);
-        assertThat(dir).isNotEmptyDirectory();
-        assertThat(dir).isDirectoryContaining("glob:**.gz");
-
-        final Path src = Path.of("target", "test-classes", "log4j-rolling-cron2.xml");
+        final Path src =
+                Path.of(requireNonNull(RollingAppenderCronTest.class.getResource("RollingAppenderCronTest.new.xml"))
+                        .toURI());
         context.addConfigurationStartedListener(ignored -> reconfigured.countDown());
-        try (final OutputStream os =
-                Files.newOutputStream(Path.of("target", "test-classes", "log4j-rolling-cron.xml"))) {
-            Files.copy(src, os);
-        }
+        Files.copy(src, CONFIG, REPLACE_EXISTING);
+
         // force a reconfiguration
         for (int i = 0; i < 20; ++i) {
             logger.debug("Adding new event {}", i);
diff --git a/log4j-core-test/src/test/resources/log4j-rolling-cron2.xml b/log4j-core-test/src/test/resources/org/apache/logging/log4j/core/appender/rolling/RollingAppenderCronTest.new.xml
similarity index 100%
rename from log4j-core-test/src/test/resources/log4j-rolling-cron2.xml
rename to log4j-core-test/src/test/resources/org/apache/logging/log4j/core/appender/rolling/RollingAppenderCronTest.new.xml
diff --git a/log4j-core-test/src/test/resources/log4j-rolling-cron.xml b/log4j-core-test/src/test/resources/org/apache/logging/log4j/core/appender/rolling/RollingAppenderCronTest.old.xml
similarity index 88%
rename from log4j-core-test/src/test/resources/log4j-rolling-cron.xml
rename to log4j-core-test/src/test/resources/org/apache/logging/log4j/core/appender/rolling/RollingAppenderCronTest.old.xml
index 49ca7772d3..986027cb45 100644
--- a/log4j-core-test/src/test/resources/log4j-rolling-cron.xml
+++ b/log4j-core-test/src/test/resources/org/apache/logging/log4j/core/appender/rolling/RollingAppenderCronTest.old.xml
@@ -17,7 +17,7 @@
   -->
 <Configuration status="off" name="RollingCronTest" monitorInterval="1">
   <Properties>
-    <Property name="filename">target/rolling-cron/rollingtest.log</Property>
+    <Property name="filename">${test:logging.path}/rollingtest.log</Property>
   </Properties>
   <Filters>
     <ThresholdFilter level="debug"/>
@@ -27,7 +27,8 @@
     <Console name="STDOUT">
       <PatternLayout pattern="%m%n"/>
     </Console>
-    <RollingFile name="RollingFile" fileName="${filename}" filePattern="target/rolling-cron/test1-%d{MM-dd-yy-HH-mm-ss}.log.gz">
+    <RollingFile name="RollingFile" fileName="${filename}"
+                 filePattern="${test:logging.path}/test1-%d{MM-dd-yy-HH-mm-ss}.log.gz">
       <PatternLayout>
         <Pattern>%d %p %C{1.} [%t] %m%n</Pattern>
       </PatternLayout>