You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by lg...@apache.org on 2020/08/18 05:49:05 UTC
[mina-sshd] 02/06: [SSHD-1020] Added a default NIO2-READ-TIMEOUT
value for tests
This is an automated email from the ASF dual-hosted git repository.
lgoldstein pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mina-sshd.git
commit 123140f2038bc8d00061126c6bce967e89bc210a
Author: Lyor Goldstein <lg...@apache.org>
AuthorDate: Fri Aug 14 19:27:40 2020 +0300
[SSHD-1020] Added a default NIO2-READ-TIMEOUT value for tests
---
.../java/org/apache/sshd/KeyReExchangeTest.java | 3 +-
.../org/apache/sshd/util/test/BaseTestSupport.java | 33 ++++------------------
.../sshd/util/test/CoreTestSupportUtils.java | 30 ++++++++++++++++++++
3 files changed, 37 insertions(+), 29 deletions(-)
diff --git a/sshd-core/src/test/java/org/apache/sshd/KeyReExchangeTest.java b/sshd-core/src/test/java/org/apache/sshd/KeyReExchangeTest.java
index 18bef92..2724a8e 100644
--- a/sshd-core/src/test/java/org/apache/sshd/KeyReExchangeTest.java
+++ b/sshd-core/src/test/java/org/apache/sshd/KeyReExchangeTest.java
@@ -62,6 +62,7 @@ import org.apache.sshd.server.channel.ChannelSession;
import org.apache.sshd.server.command.Command;
import org.apache.sshd.server.subsystem.SubsystemFactory;
import org.apache.sshd.util.test.BaseTestSupport;
+import org.apache.sshd.util.test.CoreTestSupportUtils;
import org.apache.sshd.util.test.JSchLogger;
import org.apache.sshd.util.test.OutputCountTrackingOutputStream;
import org.apache.sshd.util.test.SimpleUserInfo;
@@ -654,7 +655,7 @@ public class KeyReExchangeTest extends BaseTestSupport {
teeOut.write("exit\n".getBytes(StandardCharsets.UTF_8));
teeOut.flush();
- Duration timeout = getTimeout("KeyReExchangeTest", Duration.ofSeconds(15));
+ Duration timeout = CoreTestSupportUtils.getTimeout("KeyReExchangeTest", Duration.ofSeconds(15));
Collection<ClientChannelEvent> result = channel.waitFor(EnumSet.of(ClientChannelEvent.CLOSED), timeout);
assertFalse("Timeout while waiting for channel closure", result.contains(ClientChannelEvent.TIMEOUT));
diff --git a/sshd-core/src/test/java/org/apache/sshd/util/test/BaseTestSupport.java b/sshd-core/src/test/java/org/apache/sshd/util/test/BaseTestSupport.java
index 69b2614..94765ef 100644
--- a/sshd-core/src/test/java/org/apache/sshd/util/test/BaseTestSupport.java
+++ b/sshd-core/src/test/java/org/apache/sshd/util/test/BaseTestSupport.java
@@ -45,11 +45,11 @@ public abstract class BaseTestSupport extends JUnitTestSupport {
public static final String TEST_LOCALHOST
= System.getProperty("org.apache.sshd.test.localhost", SshdSocketAddress.LOCALHOST_IPV4);
- public static final Duration CONNECT_TIMEOUT = getTimeout("connect", Duration.ofSeconds(7));
- public static final Duration AUTH_TIMEOUT = getTimeout("auth", Duration.ofSeconds(5));
- public static final Duration OPEN_TIMEOUT = getTimeout("open", Duration.ofSeconds(9));
- public static final Duration DEFAULT_TIMEOUT = getTimeout("default", Duration.ofSeconds(5));
- public static final Duration CLOSE_TIMEOUT = getTimeout("close", Duration.ofSeconds(15));
+ public static final Duration CONNECT_TIMEOUT = CoreTestSupportUtils.getTimeout("connect", Duration.ofSeconds(7));
+ public static final Duration AUTH_TIMEOUT = CoreTestSupportUtils.getTimeout("auth", Duration.ofSeconds(5));
+ public static final Duration OPEN_TIMEOUT = CoreTestSupportUtils.getTimeout("open", Duration.ofSeconds(9));
+ public static final Duration DEFAULT_TIMEOUT = CoreTestSupportUtils.getTimeout("default", Duration.ofSeconds(5));
+ public static final Duration CLOSE_TIMEOUT = CoreTestSupportUtils.getTimeout("close", Duration.ofSeconds(15));
@Rule
public final TestWatcher rule = new TestWatcher() {
@@ -98,29 +98,6 @@ public abstract class BaseTestSupport extends JUnitTestSupport {
logger.setLevel(level);
}
- public static Duration getTimeout(String property, Duration defaultValue) {
- // Do we have a specific timeout value ?
- String str = System.getProperty("org.apache.sshd.test.timeout." + property);
- if (GenericUtils.isNotEmpty(str)) {
- return Duration.ofMillis(Long.parseLong(str));
- }
-
- // Do we have a specific factor ?
- str = System.getProperty("org.apache.sshd.test.timeout.factor." + property);
- if (GenericUtils.isEmpty(str)) {
- // Do we have a global factor ?
- str = System.getProperty("org.apache.sshd.test.timeout.factor");
- }
-
- if (GenericUtils.isNotEmpty(str)) {
- double factor = Double.parseDouble(str);
- long dur = Math.round(defaultValue.toMillis() * factor);
- return Duration.ofMillis(dur);
- }
-
- return defaultValue;
- }
-
protected SshServer setupTestServer() {
return CoreTestSupportUtils.setupTestServer(getClass());
}
diff --git a/sshd-core/src/test/java/org/apache/sshd/util/test/CoreTestSupportUtils.java b/sshd-core/src/test/java/org/apache/sshd/util/test/CoreTestSupportUtils.java
index 4ad8967..6e52784 100644
--- a/sshd-core/src/test/java/org/apache/sshd/util/test/CoreTestSupportUtils.java
+++ b/sshd-core/src/test/java/org/apache/sshd/util/test/CoreTestSupportUtils.java
@@ -21,6 +21,7 @@ package org.apache.sshd.util.test;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
+import java.time.Duration;
import java.util.ArrayList;
import org.apache.sshd.client.ClientBuilder;
@@ -32,12 +33,16 @@ import org.apache.sshd.common.helpers.AbstractFactoryManager;
import org.apache.sshd.common.kex.BuiltinDHFactories;
import org.apache.sshd.common.keyprovider.KeyIdentityProvider;
import org.apache.sshd.common.signature.BuiltinSignatures;
+import org.apache.sshd.common.util.GenericUtils;
+import org.apache.sshd.core.CoreModuleProperties;
import org.apache.sshd.server.ServerBuilder;
import org.apache.sshd.server.SshServer;
import org.apache.sshd.server.auth.pubkey.AcceptAllPublickeyAuthenticator;
import org.apache.sshd.server.shell.UnknownCommandFactory;
public final class CoreTestSupportUtils {
+ public static final Duration READ_TIMEOUT = getTimeout("read.nio2", Duration.ofSeconds(60));
+
private CoreTestSupportUtils() {
throw new UnsupportedOperationException("No instance");
}
@@ -55,6 +60,7 @@ public final class CoreTestSupportUtils {
client.setServerKeyVerifier(AcceptAllServerKeyVerifier.INSTANCE);
client.setHostConfigEntryResolver(HostConfigEntryResolver.EMPTY);
client.setKeyIdentityProvider(KeyIdentityProvider.EMPTY_KEYS_PROVIDER);
+ CoreModuleProperties.NIO2_READ_TIMEOUT.set(client, READ_TIMEOUT);
return client;
}
@@ -77,6 +83,7 @@ public final class CoreTestSupportUtils {
sshd.setPublickeyAuthenticator(AcceptAllPublickeyAuthenticator.INSTANCE);
sshd.setShellFactory(EchoShellFactory.INSTANCE);
sshd.setCommandFactory(UnknownCommandFactory.INSTANCE);
+ CoreModuleProperties.NIO2_READ_TIMEOUT.set(sshd, READ_TIMEOUT);
return sshd;
}
@@ -97,4 +104,27 @@ public final class CoreTestSupportUtils {
manager.setSignatureFactories(new ArrayList<>(BuiltinSignatures.VALUES));
return manager;
}
+
+ public static Duration getTimeout(String property, Duration defaultValue) {
+ // Do we have a specific timeout value ?
+ String str = System.getProperty("org.apache.sshd.test.timeout." + property);
+ if (GenericUtils.isNotEmpty(str)) {
+ return Duration.ofMillis(Long.parseLong(str));
+ }
+
+ // Do we have a specific factor ?
+ str = System.getProperty("org.apache.sshd.test.timeout.factor." + property);
+ if (GenericUtils.isEmpty(str)) {
+ // Do we have a global factor ?
+ str = System.getProperty("org.apache.sshd.test.timeout.factor");
+ }
+
+ if (GenericUtils.isNotEmpty(str)) {
+ double factor = Double.parseDouble(str);
+ long dur = Math.round(defaultValue.toMillis() * factor);
+ return Duration.ofMillis(dur);
+ }
+
+ return defaultValue;
+ }
}