Use @RunWith(Suite.class) for emul test suites.

Change-Id: I2fc94ccf4298714dfee8ba9628f9137e30cdb8a0
diff --git a/user/test/com/google/gwt/emultest/BigDecimalSuite.java b/user/test/com/google/gwt/emultest/BigDecimalSuite.java
index b0479a3..210a47e 100644
--- a/user/test/com/google/gwt/emultest/BigDecimalSuite.java
+++ b/user/test/com/google/gwt/emultest/BigDecimalSuite.java
@@ -20,23 +20,20 @@
 import com.google.gwt.emultest.java.math.BigDecimalConstructorsTest;
 import com.google.gwt.emultest.java.math.BigDecimalConvertTest;
 import com.google.gwt.emultest.java.math.BigDecimalScaleOperationsTest;
-import com.google.gwt.junit.tools.GWTTestSuite;
 
-import junit.framework.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
 
 /**
  * Test JRE emulation of BigDecimal.
  */
-public class BigDecimalSuite {
-
-  /** Note: due to compiler error, only can use one Test Case at a time. */
-  public static Test suite() {
-    GWTTestSuite suite = new GWTTestSuite("Tests for BigDecimal");
-    suite.addTestSuite(BigDecimalArithmeticTest.class);
-    suite.addTestSuite(BigDecimalCompareTest.class);
-    suite.addTestSuite(BigDecimalConstructorsTest.class);
-    suite.addTestSuite(BigDecimalConvertTest.class);
-    suite.addTestSuite(BigDecimalScaleOperationsTest.class);
-    return suite;
-  }
-}
+@RunWith(Suite.class)
+@SuiteClasses({
+  BigDecimalArithmeticTest.class,
+  BigDecimalCompareTest.class,
+  BigDecimalConstructorsTest.class,
+  BigDecimalConvertTest.class,
+  BigDecimalScaleOperationsTest.class,
+})
+public class BigDecimalSuite { }
diff --git a/user/test/com/google/gwt/emultest/BigIntegerSuite.java b/user/test/com/google/gwt/emultest/BigIntegerSuite.java
index 35e3ab0..c44c0ba 100644
--- a/user/test/com/google/gwt/emultest/BigIntegerSuite.java
+++ b/user/test/com/google/gwt/emultest/BigIntegerSuite.java
@@ -29,32 +29,29 @@
 import com.google.gwt.emultest.java.math.BigIntegerSubtractTest;
 import com.google.gwt.emultest.java.math.BigIntegerToStringTest;
 import com.google.gwt.emultest.java.math.BigIntegerXorTest;
-import com.google.gwt.junit.tools.GWTTestSuite;
 
-import junit.framework.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
 
 /**
  * Test JRE emulation of BigInteger.
  */
-public class BigIntegerSuite {
-
-  /** Note: due to compiler error, only can use one Test Case at a time. */
-  public static Test suite() {
-    GWTTestSuite suite = new GWTTestSuite("Tests for BigInteger");
-    suite.addTestSuite(BigIntegerAddTest.class);
-    suite.addTestSuite(BigIntegerAndTest.class);
-    suite.addTestSuite(BigIntegerCompareTest.class);
-    suite.addTestSuite(BigIntegerConstructorsTest.class);
-    suite.addTestSuite(BigIntegerDivideTest.class);
-    suite.addTestSuite(BigIntegerHashCodeTest.class);
-    suite.addTestSuite(BigIntegerModPowTest.class);
-    suite.addTestSuite(BigIntegerMultiplyTest.class);
-    suite.addTestSuite(BigIntegerNotTest.class);
-    suite.addTestSuite(BigIntegerOperateBitsTest.class);
-    suite.addTestSuite(BigIntegerOrTest.class);
-    suite.addTestSuite(BigIntegerSubtractTest.class);
-    suite.addTestSuite(BigIntegerToStringTest.class);
-    suite.addTestSuite(BigIntegerXorTest.class);
-    return suite;
-  }
-}
+@RunWith(Suite.class)
+@SuiteClasses({
+  BigIntegerAddTest.class,
+  BigIntegerAndTest.class,
+  BigIntegerCompareTest.class,
+  BigIntegerConstructorsTest.class,
+  BigIntegerDivideTest.class,
+  BigIntegerHashCodeTest.class,
+  BigIntegerModPowTest.class,
+  BigIntegerMultiplyTest.class,
+  BigIntegerNotTest.class,
+  BigIntegerOperateBitsTest.class,
+  BigIntegerOrTest.class,
+  BigIntegerSubtractTest.class,
+  BigIntegerToStringTest.class,
+  BigIntegerXorTest.class,
+})
+public class BigIntegerSuite { }
diff --git a/user/test/com/google/gwt/emultest/CollectionsSuite.java b/user/test/com/google/gwt/emultest/CollectionsSuite.java
index 6d69a38..e078443 100644
--- a/user/test/com/google/gwt/emultest/CollectionsSuite.java
+++ b/user/test/com/google/gwt/emultest/CollectionsSuite.java
@@ -35,45 +35,49 @@
 import com.google.gwt.emultest.java.util.PriorityQueueTest;
 import com.google.gwt.emultest.java.util.RandomTest;
 import com.google.gwt.emultest.java.util.StackTest;
+import com.google.gwt.emultest.java.util.TreeMapIntegerDoubleTest;
+import com.google.gwt.emultest.java.util.TreeMapIntegerDoubleWithComparatorTest;
+import com.google.gwt.emultest.java.util.TreeMapStringStringTest;
+import com.google.gwt.emultest.java.util.TreeMapStringStringWithComparatorTest;
+import com.google.gwt.emultest.java.util.TreeSetIntegerTest;
+import com.google.gwt.emultest.java.util.TreeSetIntegerWithComparatorTest;
 import com.google.gwt.emultest.java.util.VectorTest;
-import com.google.gwt.junit.tools.GWTTestSuite;
 
-import junit.framework.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
 
-/**
- * Test JRE Collections emulation.
- */
-public class CollectionsSuite {
+/** Test JRE Collections emulation. */
+@RunWith(Suite.class)
+@SuiteClasses({
+  ArrayDequeTest.class,
+  ArrayListTest.class,
+  ArraysTest.class,
+  BitSetTest.class,
+  CollectionsTest.class,
+  ComparatorTest.class,
+  DateTest.class,
+  EnumMapTest.class,
+  EnumSetTest.class,
+  HashMapTest.class,
+  HashSetTest.class,
+  IdentityHashMapTest.class,
+  LinkedHashMapTest.class,
+  LinkedHashSetTest.class,
+  LinkedListTest.class,
+  ObjectsTest.class,
+  PriorityQueueTest.class,
+  RandomTest.class,
+  StackTest.class,
+  VectorTest.class,
+  TreeMapStringStringTest.class,
+  TreeMapStringStringWithComparatorTest.class,
+  TreeMapIntegerDoubleTest.class,
+  TreeMapIntegerDoubleWithComparatorTest.class,
+  TreeSetIntegerTest.class,
+  TreeSetIntegerWithComparatorTest.class,
 
-  public static Test suite() {
-    GWTTestSuite suite = new GWTTestSuite("Tests for emulation of Java Collections");
-
-    // $JUnit-BEGIN$
-    suite.addTestSuite(ArrayDequeTest.class);
-    suite.addTestSuite(ArrayListTest.class);
-    suite.addTestSuite(ArraysTest.class);
-    suite.addTestSuite(BitSetTest.class);
-    suite.addTestSuite(CollectionsTest.class);
-    suite.addTestSuite(ComparatorTest.class);
-    suite.addTestSuite(DateTest.class);
-    suite.addTestSuite(EnumMapTest.class);
-    suite.addTestSuite(EnumSetTest.class);
-    suite.addTestSuite(HashMapSmokeTest.class);
-    suite.addTestSuite(HashMapTest.class);
-    suite.addTestSuite(HashSetTest.class);
-    suite.addTestSuite(IdentityHashMapTest.class);
-    suite.addTestSuite(LinkedHashMapTest.class);
-    suite.addTestSuite(LinkedHashSetTest.class);
-    suite.addTestSuite(LinkedListTest.class);
-    suite.addTestSuite(ObjectsTest.class);
-    suite.addTestSuite(PriorityQueueTest.class);
-    suite.addTestSuite(RandomTest.class);
-    suite.addTestSuite(StackTest.class);
-    suite.addTestSuite(VectorTest.class);
-    suite.addTest(TreeMapSuiteSub.suite());
-    suite.addTest(TreeSetSuiteSub.suite());
-    // $JUnit-END$
-
-    return suite;
-  }
-}
+  // Put last to reduce number of times the test framework switches modules
+  HashMapSmokeTest.class,
+})
+public class CollectionsSuite { }
diff --git a/user/test/com/google/gwt/emultest/EmulJava8Suite.java b/user/test/com/google/gwt/emultest/EmulJava8Suite.java
index 572eb86..abab98a 100644
--- a/user/test/com/google/gwt/emultest/EmulJava8Suite.java
+++ b/user/test/com/google/gwt/emultest/EmulJava8Suite.java
@@ -48,59 +48,53 @@
 import com.google.gwt.emultest.java8.util.stream.LongStreamTest;
 import com.google.gwt.emultest.java8.util.stream.StreamSupportTest;
 import com.google.gwt.emultest.java8.util.stream.StreamTest;
-import com.google.gwt.junit.tools.GWTTestSuite;
 
-import junit.framework.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
 
-/**
- * Test Java8 JRE emulations.
- */
-public class EmulJava8Suite {
+/** Test JRE emulations. */
+@RunWith(Suite.class)
+@SuiteClasses({
+  //-- java.lang
+  DoubleTest.class,
+  FloatTest.class,
+  MathTest.class,
+  StringTest.class,
 
-  public static Test suite() {
-    GWTTestSuite suite = new GWTTestSuite("Tests for com.google.gwt.emul.java8");
+  //-- java.math
+  BigIntegerConvertTest.class,
 
-    //-- java.lang
-    suite.addTestSuite(DoubleTest.class);
-    suite.addTestSuite(FloatTest.class);
-    suite.addTestSuite(MathTest.class);
-    suite.addTestSuite(StringTest.class);
+  //-- java.util
+  ArraysTest.class,
+  ArrayListTest.class,
+  LinkedListTest.class,
+  ListTest.class,
+  VectorTest.class,
+  ComparatorTest.class,
+  MapTest.class,
+  MapEntryTest.class,
+  HashMapTest.class,
+  IdentityHashMapTest.class,
+  LinkedHashMapTest.class,
+  TreeMapTest.class,
+  OptionalTest.class,
+  OptionalIntTest.class,
+  OptionalLongTest.class,
+  OptionalDoubleTest.class,
+  PrimitiveIteratorTest.class,
+  SpliteratorsTest.class,
+  StringJoinerTest.class,
+  DoubleSummaryStatisticsTest.class,
+  IntSummaryStatisticsTest.class,
+  LongSummaryStatisticsTest.class,
 
-    //-- java.math
-    suite.addTestSuite(BigIntegerConvertTest.class);
-
-    //-- java.util
-    suite.addTestSuite(ArraysTest.class);
-    suite.addTestSuite(ArrayListTest.class);
-    suite.addTestSuite(LinkedListTest.class);
-    suite.addTestSuite(ListTest.class);
-    suite.addTestSuite(VectorTest.class);
-    suite.addTestSuite(ComparatorTest.class);
-    suite.addTestSuite(MapTest.class);
-    suite.addTestSuite(MapEntryTest.class);
-    suite.addTestSuite(HashMapTest.class);
-    suite.addTestSuite(IdentityHashMapTest.class);
-    suite.addTestSuite(LinkedHashMapTest.class);
-    suite.addTestSuite(TreeMapTest.class);
-    suite.addTestSuite(OptionalTest.class);
-    suite.addTestSuite(OptionalIntTest.class);
-    suite.addTestSuite(OptionalLongTest.class);
-    suite.addTestSuite(OptionalDoubleTest.class);
-    suite.addTestSuite(PrimitiveIteratorTest.class);
-    suite.addTestSuite(SpliteratorsTest.class);
-    suite.addTestSuite(StringJoinerTest.class);
-    suite.addTestSuite(DoubleSummaryStatisticsTest.class);
-    suite.addTestSuite(IntSummaryStatisticsTest.class);
-    suite.addTestSuite(LongSummaryStatisticsTest.class);
-
-    //-- java.util.stream
-    suite.addTestSuite(CollectorsTest.class);
-    suite.addTestSuite(DoubleStreamTest.class);
-    suite.addTestSuite(IntStreamTest.class);
-    suite.addTestSuite(LongStreamTest.class);
-    suite.addTestSuite(StreamTest.class);
-    suite.addTestSuite(StreamSupportTest.class);
-
-    return suite;
-  }
-}
+  //-- java.util.stream
+  CollectorsTest.class,
+  DoubleStreamTest.class,
+  IntStreamTest.class,
+  LongStreamTest.class,
+  StreamTest.class,
+  StreamSupportTest.class,
+})
+public class EmulJava8Suite { }
diff --git a/user/test/com/google/gwt/emultest/EmulSuite.java b/user/test/com/google/gwt/emultest/EmulSuite.java
index 1e82a93..483ae7a 100644
--- a/user/test/com/google/gwt/emultest/EmulSuite.java
+++ b/user/test/com/google/gwt/emultest/EmulSuite.java
@@ -50,70 +50,66 @@
 import com.google.gwt.emultest.java.sql.SqlDateTest;
 import com.google.gwt.emultest.java.sql.SqlTimeTest;
 import com.google.gwt.emultest.java.sql.SqlTimestampTest;
-import com.google.gwt.junit.tools.GWTTestSuite;
 
-import junit.framework.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
 
 /**
  * Test JRE emulations.
  */
-public class EmulSuite {
+@RunWith(Suite.class)
+@SuiteClasses({
+  CoercionsTest.class,
 
-  /**
-   * Note: due to compiler error, only can use one Test Case at a time.
-   */
-  public static Test suite() {
-    GWTTestSuite suite = new GWTTestSuite("Tests for com.google.gwt.emul.java");
+  //-- java.io
+  ByteArrayInputStreamTest.class,
+  ByteArrayOutputStreamTest.class,
+  FilterInputStreamTest.class,
+  FilterOutputStreamTest.class,
+  InputStreamTest.class,
+  OutputStreamTest.class,
 
-    // $JUnit-BEGIN$
-    suite.addTestSuite(CoercionsTest.class);
-    //-- java.io
-    suite.addTestSuite(ByteArrayInputStreamTest.class);
-    suite.addTestSuite(ByteArrayOutputStreamTest.class);
-    suite.addTestSuite(FilterInputStreamTest.class);
-    suite.addTestSuite(FilterOutputStreamTest.class);
-    suite.addTestSuite(InputStreamTest.class);
-    suite.addTestSuite(OutputStreamTest.class);
-    //-- java.lang
-    suite.addTestSuite(BooleanTest.class);
-    suite.addTestSuite(ByteTest.class);
-    suite.addTestSuite(CharacterTest.class);
-    suite.addTestSuite(CompilerConstantStringTest.class);
-    suite.addTestSuite(DoubleTest.class);
-    suite.addTestSuite(FloatTest.class);
-    suite.addTestSuite(IntegerTest.class);
-    suite.addTestSuite(JsExceptionTest.class);
-    suite.addTestSuite(LongTest.class);
-    suite.addTestSuite(MathTest.class);
-    suite.addTestSuite(NullPointerExceptionTest.class);
-    suite.addTestSuite(ObjectTest.class);
-    suite.addTestSuite(ShortTest.class);
-    suite.addTestSuite(StringBufferTest.class);
-    suite.addTestSuite(StringTest.class);
-    suite.addTestSuite(SystemTest.class);
-    suite.addTestSuite(ThrowableTest.class);
-    suite.addTestSuite(ThrowableStackTraceEmulTest.class);
-    suite.addTestSuite(TypeTest.class);
-    //-- java.math
-    // BigDecimal is tested in {@link BigDecimalSuite}
-    // BigInteger is tested in {@link BigIntegerSuite}
-    suite.addTestSuite(RoundingModeTest.class);
-    suite.addTestSuite(MathContextTest.class);
-    suite.addTestSuite(MathContextWithObfuscatedEnumsTest.class);
+  //-- java.lang
+  BooleanTest.class,
+  ByteTest.class,
+  CharacterTest.class,
+  CompilerConstantStringTest.class,
+  DoubleTest.class,
+  FloatTest.class,
+  IntegerTest.class,
+  JsExceptionTest.class,
+  LongTest.class,
+  MathTest.class,
+  NullPointerExceptionTest.class,
+  ObjectTest.class,
+  ShortTest.class,
+  StringBufferTest.class,
+  StringTest.class,
+  SystemTest.class,
+  ThrowableTest.class,
+  ThrowableStackTraceEmulTest.class,
+  TypeTest.class,
 
-    //-- java.nio
-    suite.addTestSuite(CharsetTest.class);
-    suite.addTestSuite(StandardCharsetsTest.class);
+  //-- java.math
+  // BigDecimal is tested in {@link BigDecimalSuite}
+  // BigInteger is tested in {@link BigIntegerSuite}
+  RoundingModeTest.class,
+  MathContextTest.class,
 
-    //-- java.security
-    suite.addTestSuite(MessageDigestTest.class);
+  //-- java.nio
+  CharsetTest.class,
+  StandardCharsetsTest.class,
 
-    //-- java.sql
-    suite.addTestSuite(SqlDateTest.class);
-    suite.addTestSuite(SqlTimeTest.class);
-    suite.addTestSuite(SqlTimestampTest.class);
-    // $JUnit-END$
+  //-- java.security
+  MessageDigestTest.class,
 
-    return suite;
-  }
-}
+  //-- java.sql
+  SqlDateTest.class,
+  SqlTimeTest.class,
+  SqlTimestampTest.class,
+
+  // Put last to reduce number of times the test framework switches modules
+  MathContextWithObfuscatedEnumsTest.class,
+})
+public class EmulSuite { }
diff --git a/user/test/com/google/gwt/emultest/TreeMapSuiteSub.java b/user/test/com/google/gwt/emultest/TreeMapSuiteSub.java
deleted file mode 100644
index 2f0e804..0000000
--- a/user/test/com/google/gwt/emultest/TreeMapSuiteSub.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright 2008 Google Inc.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.google.gwt.emultest;
-
-import com.google.gwt.emultest.java.util.TreeMapIntegerDoubleTest;
-import com.google.gwt.emultest.java.util.TreeMapIntegerDoubleWithComparatorTest;
-import com.google.gwt.emultest.java.util.TreeMapStringStringTest;
-import com.google.gwt.emultest.java.util.TreeMapStringStringWithComparatorTest;
-import com.google.gwt.junit.tools.GWTTestSuite;
-
-import junit.framework.Test;
-
-/**
- * Tests <code>TreeMap</code>.
- */
-public class TreeMapSuiteSub {
-  public static Test suite() {
-    GWTTestSuite suite = new GWTTestSuite("Tests for com.google.gwt.emul.java.util.TreeMap");
-    suite.addTestSuite(TreeMapStringStringTest.class);
-    suite.addTestSuite(TreeMapStringStringWithComparatorTest.class);
-    suite.addTestSuite(TreeMapIntegerDoubleTest.class);
-    suite.addTestSuite(TreeMapIntegerDoubleWithComparatorTest.class);
-    return suite;
-  }
-}
diff --git a/user/test/com/google/gwt/emultest/TreeSetSuiteSub.java b/user/test/com/google/gwt/emultest/TreeSetSuiteSub.java
deleted file mode 100644
index a7cf7d1..0000000
--- a/user/test/com/google/gwt/emultest/TreeSetSuiteSub.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright 2008 Google Inc.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.google.gwt.emultest;
-
-import com.google.gwt.emultest.java.util.TreeSetIntegerTest;
-import com.google.gwt.emultest.java.util.TreeSetIntegerWithComparatorTest;
-import com.google.gwt.junit.tools.GWTTestSuite;
-
-import junit.framework.Test;
-
-/**
- * Tests <code>TreeSet</code>.
- */
-public class TreeSetSuiteSub {
-  public static Test suite() {
-    GWTTestSuite suite = new GWTTestSuite("Tests for com.google.gwt.emul.java.util.TreeSet");
-    suite.addTestSuite(TreeSetIntegerTest.class);
-    suite.addTestSuite(TreeSetIntegerWithComparatorTest.class);
-    return suite;
-  }
-}