Support Older XML Formats
Bug 5844154
Change-Id: I8f0daba15072aa0ef4169354eabfcbea85062148
diff --git a/tools/tradefed-host/src/com/android/cts/tradefed/testtype/TestPackageDef.java b/tools/tradefed-host/src/com/android/cts/tradefed/testtype/TestPackageDef.java
index db95aba..d6e9ec6 100644
--- a/tools/tradefed-host/src/com/android/cts/tradefed/testtype/TestPackageDef.java
+++ b/tools/tradefed-host/src/com/android/cts/tradefed/testtype/TestPackageDef.java
@@ -41,6 +41,10 @@
*/
class TestPackageDef implements ITestPackageDef {
+ public static final String HOST_SIDE_ONLY_TEST = "hostSideOnly";
+ public static final String NATIVE_TEST = "native";
+ public static final String VM_HOST_TEST = "vmHostTest";
+
private static final String SIGNATURE_TEST_METHOD = "testSignature";
private static final String SIGNATURE_TEST_CLASS = "android.tests.sigtest.SimpleSignatureTest";
@@ -108,19 +112,14 @@
return mRunner;
}
- void setIsVMHostTest(boolean vmHostTest) {
- mIsVMHostTest = vmHostTest;
-
- }
-
- boolean isVMHostTest() {
- return mIsVMHostTest;
- }
-
void setTestType(String testType) {
mTestType = testType;
}
+ String getTestType() {
+ return mTestType;
+ }
+
void setJarPath(String jarPath) {
mJarPath = jarPath;
}
@@ -190,7 +189,7 @@
mExcludedTestFilter.setTestInclusion(mClassName, mMethodName);
mTests = filterTests();
- if ("hostSideOnly".equals(mTestType)) {
+ if (HOST_SIDE_ONLY_TEST.equals(mTestType)) {
CLog.d("Creating host test for %s", mName);
JarHostTest hostTest = new JarHostTest();
hostTest.setRunName(getUri());
@@ -198,7 +197,7 @@
hostTest.setTests(mTests);
mDigest = generateDigest(testCaseDir, mJarPath);
return hostTest;
- } else if (mIsVMHostTest) {
+ } else if (VM_HOST_TEST.equals(mTestType)) {
CLog.d("Creating vm host test for %s", mName);
VMHostTest vmHostTest = new VMHostTest();
vmHostTest.setRunName(getUri());
@@ -206,7 +205,7 @@
vmHostTest.setTests(mTests);
mDigest = generateDigest(testCaseDir, mJarPath);
return vmHostTest;
- } else if ("native".equals(mTestType)) {
+ } else if (NATIVE_TEST.equals(mTestType)) {
return new GeeTest(mUri, mName);
} else if (mIsSignatureTest) {
// TODO: hardcode the runner/class/method for now, since current package xml points to
diff --git a/tools/tradefed-host/src/com/android/cts/tradefed/testtype/TestPackageXmlParser.java b/tools/tradefed-host/src/com/android/cts/tradefed/testtype/TestPackageXmlParser.java
index 65fc87d..d24c5bf 100644
--- a/tools/tradefed-host/src/com/android/cts/tradefed/testtype/TestPackageXmlParser.java
+++ b/tools/tradefed-host/src/com/android/cts/tradefed/testtype/TestPackageXmlParser.java
@@ -64,8 +64,6 @@
final String testPackageNameSpace = attributes.getValue("appNameSpace");
final String packageName = attributes.getValue("name");
final String runnerName = attributes.getValue("runner");
- final String vmHostTest = attributes.getValue("vmHostTest");
- final String testType = attributes.getValue("testType");
final String jarPath = attributes.getValue("jarPath");
final String signatureCheck = attributes.getValue("signatureCheck");
final String javaPackageFilter = attributes.getValue("javaPackageFilter");
@@ -77,8 +75,7 @@
mPackageDef.setAppNameSpace(testPackageNameSpace);
mPackageDef.setName(packageName);
mPackageDef.setRunner(runnerName);
- mPackageDef.setIsVMHostTest(parseBoolean(vmHostTest));
- mPackageDef.setTestType(testType);
+ mPackageDef.setTestType(getTestType(attributes));
mPackageDef.setJarPath(jarPath);
mPackageDef.setIsSignatureCheck(parseBoolean(signatureCheck));
mPackageDef.setTestPackageName(javaPackageFilter);
@@ -129,6 +126,16 @@
}
+ private String getTestType(Attributes attributes) {
+ if (parseBoolean(attributes.getValue("hostSideOnly"))) {
+ return TestPackageDef.HOST_SIDE_ONLY_TEST;
+ } else if (parseBoolean(attributes.getValue("vmHostTest"))) {
+ return TestPackageDef.VM_HOST_TEST;
+ } else {
+ return attributes.getValue("testType");
+ }
+ }
+
@Override
public void endElement (String uri, String localName, String qName) {
if (TEST_SUITE_TAG.equals(localName) || TEST_CASE_TAG.equals(localName)) {
diff --git a/tools/tradefed-host/tests/src/com/android/cts/tradefed/testtype/TestPackageXmlParserTest.java b/tools/tradefed-host/tests/src/com/android/cts/tradefed/testtype/TestPackageXmlParserTest.java
index 482844c..7861449 100644
--- a/tools/tradefed-host/tests/src/com/android/cts/tradefed/testtype/TestPackageXmlParserTest.java
+++ b/tools/tradefed-host/tests/src/com/android/cts/tradefed/testtype/TestPackageXmlParserTest.java
@@ -57,6 +57,10 @@
"<TestPackage hostSideOnly=\"blah\" >" +
"</TestPackage>";
+ private static String VM_HOST_TEST_XML = "<TestPackage vmHostTest=\"true\"></TestPackage>";
+
+ private static String NATIVE_TEST_XML = "<TestPackage testType=\"native\"></TestPackage>";
+
private static String NO_TEST_DATA =
"<invalid />";
@@ -79,7 +83,7 @@
TestPackageXmlParser parser = new TestPackageXmlParser();
parser.parse(getStringAsStream(HOST_TEST_DATA));
TestPackageDef def = parser.getTestPackageDef();
- // assertTrue(def.isHostSideTest());
+ assertEquals(TestPackageDef.HOST_SIDE_ONLY_TEST, def.getTestType());
assertEquals(3, def.getTests().size());
Iterator<TestIdentifier> iterator = def.getTests().iterator();
@@ -103,7 +107,22 @@
TestPackageXmlParser parser = new TestPackageXmlParser();
parser.parse(getStringAsStream(BAD_HOST_TEST_DATA));
TestPackageDef def = parser.getTestPackageDef();
- // assertFalse(def.isHostSideTest());
+ assertFalse(TestPackageDef.HOST_SIDE_ONLY_TEST.equals(def.getTestType()));
+ }
+
+ public void testParse_vmHostTest() throws ParseException {
+ assertTestType(TestPackageDef.VM_HOST_TEST, VM_HOST_TEST_XML);
+ }
+
+ public void testParse_nativeTest() throws ParseException {
+ assertTestType(TestPackageDef.NATIVE_TEST, NATIVE_TEST_XML);
+ }
+
+ private void assertTestType(String expectedType, String xml) throws ParseException {
+ TestPackageXmlParser parser = new TestPackageXmlParser();
+ parser.parse(getStringAsStream(xml));
+ TestPackageDef def = parser.getTestPackageDef();
+ assertEquals(expectedType, def.getTestType());
}
/**