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 {

Reply via email to