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