summaryrefslogtreecommitdiffstats
path: root/testrunner/test_defs.xsd
diff options
context:
space:
mode:
authorBrett Chabot <brettchabot@google.com>2009-06-25 17:57:31 -0700
committerBrett Chabot <brettchabot@google.com>2009-06-26 14:31:52 -0700
commit764d3fa70d42a79e2ee999b790e69fc55f12bf61 (patch)
tree99033717a6c33ed44ea70edf3d04918f91e5550e /testrunner/test_defs.xsd
parente860ea067609d5cd33bce04a0536600961aceb4a (diff)
downloadandroid_development-764d3fa70d42a79e2ee999b790e69fc55f12bf61.tar.gz
android_development-764d3fa70d42a79e2ee999b790e69fc55f12bf61.tar.bz2
android_development-764d3fa70d42a79e2ee999b790e69fc55f12bf61.zip
Add support for running host java tests to runtest.
With this change, also refactored runtest as follows: Modified the test suite schema and python implementation to have an inheritance structure. Each test type has its own python module, which will also handle the logic of running the test.
Diffstat (limited to 'testrunner/test_defs.xsd')
-rw-r--r--testrunner/test_defs.xsd136
1 files changed, 117 insertions, 19 deletions
diff --git a/testrunner/test_defs.xsd b/testrunner/test_defs.xsd
index f9647795f..65c032fde 100644
--- a/testrunner/test_defs.xsd
+++ b/testrunner/test_defs.xsd
@@ -1,37 +1,135 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ 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.
+-->
+
+<!-- Contains the schema definition for Android test definitions xml -->
+
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
- targetNamespace="http://schemas.android.com/testrunner/test_defs/1.0"
- xmlns="http://schemas.android.com/testrunner/test_defs/1.0"
- elementFormDefault="qualified">
+ targetNamespace="http://schemas.android.com/testrunner/test_defs/1.0"
+ xmlns="http://schemas.android.com/testrunner/test_defs/1.0"
+ elementFormDefault="qualified">
<xs:element name="test-definitions">
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element name="test" type="javaTestType"/>
- <xs:element name="test-native" type="nativeTestType"/>
+ <xs:element name="test" type="javaTestType" />
+ <xs:element name="test-native" type="nativeTestType" />
+ <xs:element name="test-host" type="hostTestType" />
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
+ <!-- Generic, abstract test definition. Contains attributes common to all
+ test types. -->
+ <xs:complexType name="testType">
+
+ <!-- Self-descriptive name used to uniquely identify the test. -->
+ <xs:attribute name="name" type="xs:string" use="required" />
+
+ <!-- File system path, relative to Android build root, to this
+ package's Android.mk file. -->
+ <xs:attribute name="build_path" type="xs:string" use="required" />
+
+ <!-- Include test in continuous test system. -->
+ <xs:attribute name="continuous" type="xs:boolean" use="optional"
+ default="false" />
+
+ <!-- Include test in compatibility test suite. -->
+ <xs:attribute name="cts" type="xs:boolean" use="optional"
+ default="false" />
+
+ <!-- Short description (typically less than 60 characters) about this
+ test. -->
+ <xs:attribute name="description" type="xs:string" use="optional" />
+
+ <!-- Extra arguments to append to build command when building this
+ test. -->
+ <xs:attribute name="extra_build_args" type="xs:string"
+ use="optional" />
+ </xs:complexType>
+
+ <!-- Java on device instrumentation test.
+
+ The test attributes map to the following commands:
+ (if class is defined)
+ adb shell am instrument -w <package>/<runner>
+ (else)
+ adb shell am instrument -w -e class <class> <package>/<runner>
+ -->
<xs:complexType name="javaTestType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="package" type="xs:string" use="required"/>
- <xs:attribute name="build_path" type="xs:string" use="optional"/>
- <xs:attribute name="class" type="xs:string" use="optional"/>
- <xs:attribute name="runner" type="xs:string" use="optional"
- default="android.test.InstrumentationTestRunner"/>
- <xs:attribute name="coverage_target" type="xs:string" use="optional"/>
- <xs:attribute name="continuous" type="xs:boolean" use="optional" default="false"/>
- <xs:attribute name="cts" type="xs:boolean" use="optional" default="false"/>
+ <xs:complexContent>
+ <xs:extension base="testType">
+
+ <!-- Android application package that contains the tests. -->
+ <xs:attribute name="package" type="xs:string" use="required" />
+
+ <!-- Fully qualified Java test class to run. -->
+ <xs:attribute name="class" type="xs:string" use="optional" />
+
+ <!-- Fully qualified InstrumentationTestRunner to execute. -->
+ <xs:attribute name="runner" type="xs:string" use="optional"
+ default="android.test.InstrumentationTestRunner" />
+
+ <!-- Build name of Android package this test targets. These
+ targets are defined in the coverage_targets.xml file. Used as
+ basis for code coverage metrics. If omitted, code coverage will
+ not be supported for this test. -->
+ <xs:attribute name="coverage_target" type="xs:string"
+ use="optional" />
+
+ </xs:extension>
+ </xs:complexContent>
</xs:complexType>
+ <!-- Native (C/C++) on device tests.
+
+ The native test attributes map to the following commands:
+ make <build_path>/Android.mk <extra_build_args>
+ adb sync
+ for test_prog in <tests built>; do
+ adb shell "/system/bin/${test_prog} >/dev/null 2>&1;echo \$?"
+ adb shell "rm /system/bin/${test_prog}"
+ done
+ -->
<xs:complexType name="nativeTestType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="build_path" type="xs:string" use="required"/>
- <xs:attribute name="extra_make_args" type="xs:string" use="optional"/>
- <xs:attribute name="description" type="xs:string" use="optional"/>
- <xs:attribute name="continuous" type="xs:boolean" use="optional" default="false"/>
+ <xs:complexContent>
+ <xs:extension base="testType" />
+ <!-- no additional attributes -->
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Host java tests.
+
+ Uses hosttestlib to execute tests on host. Maps to following command:
+ java -cp <libs>:jar_name com.android.hosttest.DeviceTestRunner \
+ <class> -s <device serial> -p <app build path>
+ -->
+ <xs:complexType name="hostTestType">
+ <xs:complexContent>
+ <xs:extension base="testType">
+
+ <!-- The test class to run. Must extend DeviceTestSuite, and
+ implement a public static suite() method that returns a Test to
+ run. -->
+ <xs:attribute name="class" type="xs:string" use="required" />
+
+ <!-- built jar name of host library that includes the tests. -->
+ <xs:attribute name="jar_name" type="xs:string" use="required" />
+ </xs:extension>
+ </xs:complexContent>
</xs:complexType>
</xs:schema>