Fix lack of propagating numClients back to JUnitShell when the RunStyles
process their arguments.

Patch by: jat
Review by: fabbott (desk)


git-svn-id: https://google-web-toolkit.googlecode.com/svn/branches/farewellSwt@6250 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/junit/JUnitShell.java b/user/src/com/google/gwt/junit/JUnitShell.java
index 080ba4a..59bf1e6 100644
--- a/user/src/com/google/gwt/junit/JUnitShell.java
+++ b/user/src/com/google/gwt/junit/JUnitShell.java
@@ -743,7 +743,11 @@
     }
 
     long currentTimeMillis = System.currentTimeMillis();
-    if (activeClients == numClients) {
+    if (activeClients >= numClients) {
+      if (activeClients > numClients) {
+        getTopLogger().log(TreeLogger.WARN, "Too many clients: expected "
+            + numClients + ", found " + activeClients);
+      }
       firstLaunch = false;
 
       /*
@@ -818,6 +822,17 @@
   }
 
   /**
+   * Set the expected number of clients.
+   * 
+   * <p>Should only be called by RunStyle subtypes.
+   * 
+   * @param numClients
+   */
+  void setNumClients(int numClients) {
+    this.numClients = numClients;
+  }
+
+  /**
    * Finish processing command line arguments.
    */
   private void finalizeArguments() {
diff --git a/user/src/com/google/gwt/junit/RunStyleManual.java b/user/src/com/google/gwt/junit/RunStyleManual.java
index f19a739..29fc6c3 100644
--- a/user/src/com/google/gwt/junit/RunStyleManual.java
+++ b/user/src/com/google/gwt/junit/RunStyleManual.java
@@ -40,6 +40,7 @@
             e);
       }
     }
+    shell.setNumClients(numClients);
     return true;
   }
 
diff --git a/user/src/com/google/gwt/junit/RunStyleRemoteWeb.java b/user/src/com/google/gwt/junit/RunStyleRemoteWeb.java
index 41de9cf..eef9d14 100644
--- a/user/src/com/google/gwt/junit/RunStyleRemoteWeb.java
+++ b/user/src/com/google/gwt/junit/RunStyleRemoteWeb.java
@@ -179,6 +179,7 @@
       }
     });
     int numClients = urls.length;
+    shell.setNumClients(numClients);
     BrowserManager[] browserManagers = new BrowserManager[numClients];
     for (int i = 0; i < numClients; ++i) {
       long callStart = System.currentTimeMillis();
diff --git a/user/src/com/google/gwt/junit/RunStyleSelenium.java b/user/src/com/google/gwt/junit/RunStyleSelenium.java
index 4de5477..f23619a 100644
--- a/user/src/com/google/gwt/junit/RunStyleSelenium.java
+++ b/user/src/com/google/gwt/junit/RunStyleSelenium.java
@@ -108,6 +108,7 @@
     }
 
     this.remotes = targets;
+    shell.setNumClients(targets.length);
 
     // Install a shutdown hook that will close all of our outstanding Selenium
     // sessions.