This is an automated email from the ASF dual-hosted git repository.
gnodet pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mina-sshd.git
The following commit(s) were added to refs/heads/master by this push:
new 848edb1 Improve ProxyTest example
848edb1 is described below
commit 848edb18f6e2a8dd3cfc50c9ca993a15fcbcebf2
Author: Guillaume Nodet <[email protected]>
AuthorDate: Mon Jul 27 20:15:51 2020 +0200
Improve ProxyTest example
---
.../java/org/apache/sshd/client/ProxyTest.java | 39 +++++++++++-----------
1 file changed, 19 insertions(+), 20 deletions(-)
diff --git a/sshd-core/src/test/java/org/apache/sshd/client/ProxyTest.java
b/sshd-core/src/test/java/org/apache/sshd/client/ProxyTest.java
index 82902e9..1500729 100644
--- a/sshd-core/src/test/java/org/apache/sshd/client/ProxyTest.java
+++ b/sshd-core/src/test/java/org/apache/sshd/client/ProxyTest.java
@@ -40,6 +40,8 @@ import org.junit.runners.MethodSorters;
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class ProxyTest extends BaseTestSupport {
+ private ClientSession proxySession;
+
public ProxyTest() {
super();
}
@@ -50,8 +52,21 @@ public class ProxyTest extends BaseTestSupport {
SshServer proxy = setupTestServer();
SshClient client = setupTestClient()) {
+ // setup server with an echo command
+ server.setCommandFactory((session, command) -> new
CommandExecutionHelper(command) {
+ @Override
+ protected boolean handleCommandLine(String command) throws
Exception {
+ OutputStream stdout = getOutputStream();
+ stdout.write(command.getBytes(StandardCharsets.US_ASCII));
+ stdout.flush();
+ return false;
+ }
+ });
server.start();
+ // setup proxy with a forwarding filter to allow the local port
forwarding
+ proxy.setForwardingFilter(AcceptAllForwardingFilter.INSTANCE);
proxy.start();
+ // setup client
client.start();
String command = "ls -la";
@@ -66,6 +81,8 @@ public class ProxyTest extends BaseTestSupport {
result = out.toString();
}
assertEquals(command, result);
+ // make sure the proxy session is closed / closing
+ assertTrue(proxySession == null || proxySession.isClosing() ||
proxySession.isClosed());
}
}
@@ -77,7 +94,7 @@ public class ProxyTest extends BaseTestSupport {
throws java.io.IOException {
ClientSession session;
if (proxyHost != null) {
- ClientSession proxySession = client.connect(proxyUser, proxyHost,
proxyPort)
+ proxySession = client.connect(proxyUser, proxyHost, proxyPort)
.verify(CONNECT_TIMEOUT).getSession();
proxySession.addPasswordIdentity(proxyPassword);
proxySession.auth().verify(AUTH_TIMEOUT);
@@ -87,7 +104,7 @@ public class ProxyTest extends BaseTestSupport {
SshdSocketAddress bound = tracker.getBoundAddress();
session = client.connect(user, bound.getHostName(),
bound.getPort())
.verify(CONNECT_TIMEOUT).getSession();
- session.addCloseFutureListener(f -> IoUtils.closeQuietly(tracker));
+ session.addCloseFutureListener(f -> IoUtils.closeQuietly(tracker,
proxySession));
} else {
session = client.connect(user, host,
port).verify(CONNECT_TIMEOUT).getSession();
}
@@ -96,22 +113,4 @@ public class ProxyTest extends BaseTestSupport {
return session;
}
- @Override
- protected SshServer setupTestServer() {
- SshServer sshd = super.setupTestServer();
- // setup forwarding filter to allow the local port forwarding
- sshd.setForwardingFilter(AcceptAllForwardingFilter.INSTANCE);
- // setup an echo command
- sshd.setCommandFactory((session, command) -> new
CommandExecutionHelper(command) {
- @Override
- protected boolean handleCommandLine(String command) throws
Exception {
- OutputStream stdout = getOutputStream();
- stdout.write(command.getBytes(StandardCharsets.US_ASCII));
- stdout.flush();
- return false;
- }
- });
- return sshd;
- }
-
}