More expectations for our test runs
diff --git a/libcore/tools/runner/expectations.txt b/libcore/tools/runner/expectations.txt
index 44d26d0..641ec88 100644
--- a/libcore/tools/runner/expectations.txt
+++ b/libcore/tools/runner/expectations.txt
@@ -28,7 +28,7 @@
pattern .*cannot find symbol.*
-# Dalvik don't include the "SunJCE" crypto provider
+# Dalvik doesn't include the "SunJCE" crypto provider
test com.sun.crypto.provider.Cipher.AES.Test4513830
result EXEC_FAILED
pattern .*NoClassDefFoundError: com.sun.crypto.provider.SunJCE.*
@@ -601,3 +601,76 @@
test com.sun.jdi.VMDeathRequestTest
result COMPILE_FAILED
pattern .*package com.sun.jdi does not exist.*
+
+
+# Dalvik doesn't include a com.sun.net HTTP server
+test com.sun.net.httpserver
+result UNSUPPORTED
+
+test sun.net.www
+result UNSUPPORTED
+
+
+# Dalvik doesn't include AWT except the font package
+test java.awt
+result UNSUPPORTED
+
+test java.awt.FontClass
+result SUCCESS
+
+
+# Dalvik doesn't include java.beans except for property listeners
+test java.beans
+result UNSUPPORTED
+
+test java.beans.PropertyChangeSupport
+result SUCCESS
+
+
+# Dalvik doesn't include java.lang.instrument
+test java.lang.instrument
+result UNSUPPORTED
+
+
+# Dalvik doesn't include java.lang.management
+test java.lang.management
+result UNSUPPORTED
+
+
+# Dalvik doesn't include RMI
+test java.rmi
+result UNSUPPORTED
+
+test sun.rmi
+result UNSUPPORTED
+
+
+# Dalvik doesn't include javax.management
+test javax.management
+result UNSUPPORTED
+
+
+# Dalvik doesn't include javax.naming
+test javax.naming
+result UNSUPPORTED
+
+
+# Dalvik doesn't include javax.sound
+test javax.sound
+result UNSUPPORTED
+
+
+# Dalvik doesn't include javax.swing
+test javax.swing
+result UNSUPPORTED
+
+
+# Dalvik doesn't include sun.management
+test sun.management
+result UNSUPPORTED
+
+
+# Dalvik doesn't include javax.smartcardio
+test sun.security.smartcardio
+result UNSUPPORTED
+
diff --git a/libcore/tools/runner/java/dalvik/runner/Driver.java b/libcore/tools/runner/java/dalvik/runner/Driver.java
index 695417d..cf29d9c 100644
--- a/libcore/tools/runner/java/dalvik/runner/Driver.java
+++ b/libcore/tools/runner/java/dalvik/runner/Driver.java
@@ -112,16 +112,19 @@
builders.submit(new Runnable() {
public void run() {
try {
- ExpectedResult expectedResult = expectedResults.get(
- testRun.getQualifiedName());
- if (expectedResult == null) {
- expectedResult = ExpectedResult.SUCCESS;
- }
+ ExpectedResult expectedResult = lookupExpectedResult(testRun);
testRun.setExpectedResult(expectedResult);
- vm.buildAndInstall(testRun);
- logger.fine("installed test " + runIndex + "; "
- + readyToRun.size() + " are ready to run");
+ if (expectedResult.getResult() == Result.UNSUPPORTED) {
+ testRun.setResult(Result.UNSUPPORTED, Collections.<String>emptyList());
+ logger.fine("skipping test " + testRun
+ + " because the expectations file says it is unsupported.");
+
+ } else {
+ vm.buildAndInstall(testRun);
+ logger.fine("installed test " + runIndex + "; "
+ + readyToRun.size() + " are ready to run");
+ }
readyToRun.put(testRun);
} catch (Throwable throwable) {
@@ -163,6 +166,29 @@
}
/**
+ * Finds the expected result for the specified test run. This strips off
+ * parts of the test's qualified name until it either finds a match or runs
+ * out of name.
+ */
+ private ExpectedResult lookupExpectedResult(TestRun testRun) {
+ String name = testRun.getQualifiedName();
+
+ while (true) {
+ ExpectedResult expectedResult = expectedResults.get(name);
+ if (expectedResult != null) {
+ return expectedResult;
+ }
+
+ int dot = name.lastIndexOf('.');
+ if (dot == -1) {
+ return ExpectedResult.SUCCESS;
+ }
+
+ name = name.substring(0, dot);
+ }
+ }
+
+ /**
* Executes a single test and then prints the result.
*/
private void execute(TestRun testRun) {
diff --git a/libcore/tools/runner/java/dalvik/runner/TestRun.java b/libcore/tools/runner/java/dalvik/runner/TestRun.java
index ff72297..3e85d92 100644
--- a/libcore/tools/runner/java/dalvik/runner/TestRun.java
+++ b/libcore/tools/runner/java/dalvik/runner/TestRun.java
@@ -21,7 +21,6 @@
import java.io.StringWriter;
import java.util.Arrays;
import java.util.List;
-import java.util.regex.Pattern;
/**
* A test run and its outcome. This class tracks the complete lifecycle of a
@@ -224,4 +223,8 @@
return builder.toString();
}
+
+ @Override public String toString() {
+ return qualifiedName;
+ }
}