Run all remoteweb targets in parallel in a single JVM instead of serially across multiple JVMs.

Patch by: bobv
Review by: freeland, scottb (TBR)


git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@1953 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/common.ant.xml b/common.ant.xml
index 036441e..8a5afa2 100755
--- a/common.ant.xml
+++ b/common.ant.xml
@@ -94,11 +94,6 @@
 	<property name="gwt.junit.port" value="8888" />
 	<property name="gwt.junit.testcase.includes" value="**/*Suite.class"/>
 	
-	<!--
-		Comma delimited list of host and path components on which to run remote browser testing.
-	-->
-	<property name="gwt.remote.browsers" value="" />
-
 
 	<!-- Pulls in tasks defined in ant-contrib, i.e. foreach -->
 	<taskdef resource="net/sf/antcontrib/antlib.xml">
diff --git a/user/build.xml b/user/build.xml
index dda881b..4e303eb 100755
--- a/user/build.xml
+++ b/user/build.xml
@@ -65,9 +65,10 @@
 		</gwt.checkstyle>
 	</target>
 
-	<target name="remoteweb-test" description="Run a remoteweb test at the given host and path">
-		<echo message="Performing remote browser testing at rmi://${gwt.remote.browser}" />
-		<gwt.junit test.args="${test.args} -out www -web -remoteweb rmi://${gwt.remote.browser}" test.out="${junit.out}/${gwt.remote.browser}" test.cases="default.web.tests" />
+	<target name="remoteweb-test" description="Run a remoteweb test at the given host and path" if="gwt.remote.browsers">
+		<propertyregex property="gwt.remote.browsers" input="rmi://${gwt.remote.browsers}" regexp="," replace=",rmi://" global="true" />
+		<echo message="Performing remote browser testing at ${gwt.remote.browsers}" />
+		<gwt.junit test.args="${test.args} -out www -web -remoteweb ${gwt.remote.browsers}" test.out="${junit.out}/remoteweb" test.cases="default.web.tests" />
 	</target>
 
 	<target name="test.hosted" depends="compile, compile.tests" description="Run only hosted-mode tests for this project.">
@@ -87,14 +88,10 @@
 		-->
 		<limit failonerror="true" hours="1">
 		<parallel threadsPerProcessor="1">
+			<!-- remoteweb-test is a no-op unless gwt.remote.browsers is defined -->
+			<antcall target="remoteweb-test"/>
 			<antcall target="test.hosted"/>
-
 			<antcall target="test.web"/>
-
-			<!--
-				Run remote browser testing for the comma delimited list of remote browsers
-			-->
-			<foreach list="${gwt.remote.browsers}" delimiter="," parallel="true" maxThreads="1" target="remoteweb-test" param="gwt.remote.browser" />
 		</parallel>
 		</limit>
 	</target>