Reviewers: cromwellian,

Description:
Fix TestOracleMediatorFromByteCodeTest to work when run on JDK 7.
The issue is that java.lang.Throwable has nested classes in JDK 7 but
not JDK 6.
So, change the assertion to allow any nested classes.


Please review this at http://gwt-code-reviews.appspot.com/1794804/

Affected files:
  M dev/core/test/com/google/gwt/dev/javac/TypeOracleMediatorTestBase.java


Index: dev/core/test/com/google/gwt/dev/javac/TypeOracleMediatorTestBase.java
===================================================================
--- dev/core/test/com/google/gwt/dev/javac/TypeOracleMediatorTestBase.java (revision 11175) +++ dev/core/test/com/google/gwt/dev/javac/TypeOracleMediatorTestBase.java (working copy)
@@ -73,6 +73,7 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.LinkedHashSet;
@@ -1168,8 +1169,8 @@
     addTestResource(CU_Throwable);
     addTestResource(CU_MethodsAndParams);
     buildTypeOracle();
-    JClassType[] types = typeOracle.getTypes();
-    assertEquals(3, types.length);
+    // Throwable has nested classes in JDK 7, so we need to ignore them
+    checkGetTypes("Methods", "Object", "Throwable");
   }

   public void testOuterInner() throws TypeOracleException {
@@ -1313,6 +1314,26 @@
     }
   }

+  private void checkGetTypes(String... expectedOuterClassNames) {
+    Set<String> expected = new HashSet<String>();
+    expected.addAll(Arrays.asList(expectedOuterClassNames));
+
+    Set<String> found = new HashSet<String>();
+
+    for (JClassType type : typeOracle.getTypes()) {
+      String name = type.getName();
+      if (name.indexOf('.') > 0) {
+        name = name.substring(0, name.indexOf('.'));
+      }
+      if (!expected.contains(name)) {
+        fail("getTypes() returned an unexpected class: " + type.getName());
+      }
+      found.add(name);
+    }
+
+    assertEquals(expected, found);
+  }
+
private void register(String qualifiedTypeName, CheckedJavaResource cup) {
     assertFalse(publicTypeNameToTestCupMap.containsKey(qualifiedTypeName));
     publicTypeNameToTestCupMap.put(qualifiedTypeName, cup);


--
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to