Repository: mina-sshd Updated Branches: refs/heads/master 46216f91e -> 0ebd488da
[SSHD-387] Improve WindowTest a bit Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/99145d70 Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/99145d70 Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/99145d70 Branch: refs/heads/master Commit: 99145d7041b2b73c26567451128e4a9a91f6ebef Parents: 46216f9 Author: Guillaume Nodet <[email protected]> Authored: Tue Feb 10 23:36:32 2015 +0100 Committer: Guillaume Nodet <[email protected]> Committed: Wed Feb 11 10:02:18 2015 +0100 ---------------------------------------------------------------------- .../test/java/org/apache/sshd/WindowTest.java | 45 ++++++++++++-------- 1 file changed, 28 insertions(+), 17 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/99145d70/sshd-core/src/test/java/org/apache/sshd/WindowTest.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/test/java/org/apache/sshd/WindowTest.java b/sshd-core/src/test/java/org/apache/sshd/WindowTest.java index 8298b22..40df419 100644 --- a/sshd-core/src/test/java/org/apache/sshd/WindowTest.java +++ b/sshd-core/src/test/java/org/apache/sshd/WindowTest.java @@ -170,16 +170,13 @@ public class WindowTest extends BaseTest { writer.write("\n"); writer.flush(); - Thread.sleep(5); - assertNotEquals("client local and server remote", clientLocal.getSize(), serverRemote.getSize()); + waitForWindowNotEquals(clientLocal, serverRemote, "client local", "server remote"); String line = reader.readLine(); assertEquals(message, line); - Thread.sleep(5); - - assertEquals("client local and server remote", clientLocal.getSize(), serverRemote.getSize()); - assertEquals("client remote and server local", clientRemote.getSize(), serverLocal.getSize()); + waitForWindowEquals(clientLocal, serverRemote, "client local", "server remote"); + waitForWindowEquals(clientRemote, serverLocal, "client remote", "server local"); } } @@ -220,16 +217,13 @@ public class WindowTest extends BaseTest { writer.write("\n"); writer.flush(); - Thread.sleep(5); - assertEquals("client local and server remote", clientLocal.getSize(), serverRemote.getSize()); + waitForWindowEquals(clientLocal, serverRemote, "client local", "server remote"); String line = reader.readLine(); assertEquals(message, line); - Thread.sleep(5); - - assertEquals("client local and server remote", clientLocal.getSize(), serverRemote.getSize()); - assertEquals("client remote and server local", clientRemote.getSize(), serverLocal.getSize()); + waitForWindowEquals(clientLocal, serverRemote, "client local", "server remote"); + waitForWindowEquals(clientRemote, serverLocal, "client remote", "server local"); } } @@ -262,8 +256,7 @@ public class WindowTest extends BaseTest { Buffer buffer = new Buffer((message + "\n").getBytes()); channel.getAsyncIn().write(buffer).verify(); - Thread.sleep(5); - assertNotEquals("client local and server remote", clientLocal.getSize(), serverRemote.getSize()); + waitForWindowNotEquals(clientLocal, serverRemote, "client local", "server remote"); Buffer buf = new Buffer(16); IoReadFuture future = channel.getAsyncOut().read(buf); @@ -271,11 +264,29 @@ public class WindowTest extends BaseTest { assertEquals(11, buf.available()); assertEquals(message + "\n", new String(buf.array(), buf.rpos(), buf.available())); - Thread.sleep(5); + waitForWindowEquals(clientLocal, serverRemote, "client local", "server remote"); + waitForWindowEquals(clientRemote, serverLocal, "client remote", "server local"); + } + } - assertEquals("client local and server remote", clientLocal.getSize(), serverRemote.getSize()); - assertEquals("client remote and server local", clientRemote.getSize(), serverLocal.getSize()); + protected void waitForWindowNotEquals(Window w1, Window w2, String n1, String n2) throws InterruptedException { + for (int j = 0; j < 50; j++) { + if (w1.getSize() != w2.getSize()) { + break; + } + Thread.sleep(1); + } + assertNotEquals(n1 + " and " + n2, w1.getSize(), w2.getSize()); + } + + protected void waitForWindowEquals(Window w1, Window w2, String n1, String n2) throws InterruptedException { + for (int j = 0; j < 50; j++) { + if (w1.getSize() == w2.getSize()) { + break; + } + Thread.sleep(1); } + assertEquals(n1 + " and " + n2, w1.getSize(), w2.getSize()); } public static class TestEchoShellFactory extends EchoShellFactory {
