You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by vy...@apache.org on 2021/11/02 18:55:05 UTC
[logging-log4j2] 02/02: LOG4J2-2829 Try to fix
SocketAppenderReconnectTest failures on Windows.
This is an automated email from the ASF dual-hosted git repository.
vy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit 0d9e844c77fc03f72fb1a2c96499b06640434c06
Author: Volkan Yazici <vo...@yazi.ci>
AuthorDate: Tue Nov 2 13:37:31 2021 +0100
LOG4J2-2829 Try to fix SocketAppenderReconnectTest failures on Windows.
---
.../core/net/SocketAppenderReconnectTest.java | 32 +++++++++++++++++-----
1 file changed, 25 insertions(+), 7 deletions(-)
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/net/SocketAppenderReconnectTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/net/SocketAppenderReconnectTest.java
index e007822..827ab06 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/net/SocketAppenderReconnectTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/net/SocketAppenderReconnectTest.java
@@ -28,6 +28,7 @@ import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilderFact
import org.apache.logging.log4j.core.config.builder.impl.BuiltConfiguration;
import org.apache.logging.log4j.core.net.TcpSocketManager.HostResolver;
import org.apache.logging.log4j.status.StatusLogger;
+import org.apache.logging.log4j.util.PropertiesUtil;
import org.junit.jupiter.api.Test;
import java.io.BufferedReader;
@@ -188,13 +189,7 @@ class SocketAppenderReconnectTest {
final String message = expectedMessages.get(messageIndex);
// Due to socket initialization, the first write() might need some extra effort.
if (messageIndex == 0) {
- await()
- .pollInterval(100, TimeUnit.MILLISECONDS)
- .atMost(2, TimeUnit.SECONDS)
- .until(() -> {
- logger.info(message);
- return true;
- });
+ awaitUntilSucceeds(() -> logger.info(message));
} else {
logger.info(message);
}
@@ -204,6 +199,29 @@ class SocketAppenderReconnectTest {
assertEquals(expectedMessages, actualMessages);
}
+ private static void awaitUntilSucceeds(final Runnable runnable) {
+ final long pollIntervalMillis;
+ final long timeoutSeconds;
+ final boolean osWindows = PropertiesUtil.getProperties().isOsWindows();
+ if (osWindows) {
+ // Windows-specific non-sense values.
+ // These figures are collected by trial-and-error on a friend's laptop which has Windows installed.
+ pollIntervalMillis = 1_000L;
+ timeoutSeconds = 15;
+ } else {
+ // Universally sensible values.
+ pollIntervalMillis = 100;
+ timeoutSeconds = 3;
+ }
+ await()
+ .pollInterval(pollIntervalMillis, TimeUnit.MILLISECONDS)
+ .atMost(timeoutSeconds, TimeUnit.SECONDS)
+ .until(() -> {
+ runnable.run();
+ return true;
+ });
+ }
+
private static void verifyLoggingFailure() {
final Logger logger = LogManager.getLogger();
int retryCount = 3;