The Android Open Source Project | f805710 | 2009-03-15 16:47:16 -0700 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | |
| 3 | # Copyright (C) 2008 The Android Open Source Project |
| 4 | # |
| 5 | # Licensed under the Apache License, Version 2.0 (the "License"); |
| 6 | # you may not use this file except in compliance with the License. |
| 7 | # You may obtain a copy of the License at |
| 8 | # |
| 9 | # http://www.apache.org/licenses/LICENSE-2.0 |
| 10 | # |
| 11 | # Unless required by applicable law or agreed to in writing, software |
| 12 | # distributed under the License is distributed on an "AS IS" BASIS, |
| 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 14 | # See the License for the specific language governing permissions and |
| 15 | # limitations under the License. |
| 16 | |
| 17 | # A lit XML parser which could get attribute value of the specified tag. |
| 18 | # parseXML(tag, attribute) |
| 19 | parseXML() { |
| 20 | awk -v tag=${2} -v attribute=${3} \ |
| 21 | 'BEGIN { RS=">" } |
| 22 | { ind=split($0,field," "); |
| 23 | if (substr(field[1],2)==tag) { |
| 24 | for(ind2=2;ind2<=ind;ind2++) { |
| 25 | split(field[ind2],token,"="); |
| 26 | if (token[1]==attribute) |
| 27 | { print token[2] } |
| 28 | }}}' ${1} |
| 29 | } |
| 30 | |
| 31 | # Generate signature checking description xml file. |
| 32 | generateSignatureCheckDescription() { |
| 33 | echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" > ${SIGNATURE_CHECK_PATH} |
| 34 | echo "<TestPackage AndroidFramework=\"Android 1.0\" jarPath=\"\" "\ |
The Android Open Source Project | 7671bec | 2009-03-19 23:08:36 -0700 | [diff] [blame] | 35 | "name=\"${SIGNATURE_TEST_NAME}\" runner=\".InstrumentationRunner\" "\ |
The Android Open Source Project | f805710 | 2009-03-15 16:47:16 -0700 | [diff] [blame] | 36 | "targetNameSpace=\"\" targetBinaryName=\"\" version=\"1.0\" signatureCheck=\"true\" "\ |
The Android Open Source Project | 7671bec | 2009-03-19 23:08:36 -0700 | [diff] [blame] | 37 | "appPackageName=\"${SIGNATURE_TESTS}\">" >> ${SIGNATURE_CHECK_PATH} |
The Android Open Source Project | f805710 | 2009-03-15 16:47:16 -0700 | [diff] [blame] | 38 | echo "<TestSuite name=\"android\">" >> ${SIGNATURE_CHECK_PATH} |
| 39 | echo "<TestSuite name=\"tests\">" >> ${SIGNATURE_CHECK_PATH} |
| 40 | echo "<TestSuite name=\"sigtest\">" >> ${SIGNATURE_CHECK_PATH} |
| 41 | echo "<TestCase name=\"SignatureTest\">" >> ${SIGNATURE_CHECK_PATH} |
Phil Dubach | dc4e179 | 2009-05-05 14:01:34 -0700 | [diff] [blame] | 42 | echo "<Test name=\"signatureTest\">" >> ${SIGNATURE_CHECK_PATH} |
The Android Open Source Project | f805710 | 2009-03-15 16:47:16 -0700 | [diff] [blame] | 43 | echo "</Test>" >> ${SIGNATURE_CHECK_PATH} |
| 44 | echo "</TestCase>" >> ${SIGNATURE_CHECK_PATH} |
| 45 | echo "</TestSuite>" >> ${SIGNATURE_CHECK_PATH} |
| 46 | echo "</TestSuite>" >> ${SIGNATURE_CHECK_PATH} |
| 47 | echo "</TestSuite>" >> ${SIGNATURE_CHECK_PATH} |
| 48 | echo "</TestPackage>" >> ${SIGNATURE_CHECK_PATH} |
| 49 | } |
| 50 | |
Bill Napier | c8a5cde | 2009-04-17 14:31:38 -0700 | [diff] [blame] | 51 | generateReferenceAppDescription() { |
| 52 | PACKAGE_NAME=${1} |
| 53 | PACKAGE_PATH=${2} |
| 54 | JAVA_PACKAGE=${3} |
| 55 | CLASS_NAME=${4} |
| 56 | METHOD_NAME=${5} |
| 57 | APK_TO_TEST_NAME=${6} |
| 58 | PACKAGE_TO_TEST=${7} |
| 59 | # Convert the dotted package name into a list so we can loop though it. |
| 60 | JAVA_PACKAGE_LIST=`echo $JAVA_PACKAGE | sed 's/\./ /g'` |
| 61 | |
| 62 | echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" > ${PACKAGE_PATH} |
| 63 | echo "<TestPackage AndroidFramework=\"Android 1.0\" jarPath=\"\" "\ |
| 64 | "name=\"${PACKAGE_NAME}\" runner=\"android.test.InstrumentationTestRunner\" "\ |
| 65 | "targetNameSpace=\"\" targetBinaryName=\"\" version=\"1.0\" "\ |
| 66 | "signatureCheck=\"false\" referenceAppTest=\"true\""\ |
| 67 | "apkToTestName=\"${APK_TO_TEST_NAME}\""\ |
| 68 | "packageToTest=\"${PACKAGE_TO_TEST}\""\ |
| 69 | "appPackageName=\"${JAVA_PACKAGE}\">" >> ${PACKAGE_PATH} |
| 70 | for pack_part in ${JAVA_PACKAGE_LIST}; do |
| 71 | echo "<TestSuite name=\"${pack_part}\">" >> ${PACKAGE_PATH} |
| 72 | done |
| 73 | echo "<TestCase name=\"${CLASS_NAME}\">" >> ${PACKAGE_PATH} |
Phil Dubach | dc4e179 | 2009-05-05 14:01:34 -0700 | [diff] [blame] | 74 | echo "<Test name=\"${METHOD_NAME}\">" >> ${PACKAGE_PATH} |
Bill Napier | c8a5cde | 2009-04-17 14:31:38 -0700 | [diff] [blame] | 75 | echo "</Test>" >> ${PACKAGE_PATH} |
| 76 | echo "</TestCase>" >> ${PACKAGE_PATH} |
| 77 | for pack_part in ${JAVA_PACKAGE_LIST}; do |
| 78 | echo "</TestSuite>" >> ${PACKAGE_PATH} |
| 79 | done |
| 80 | echo "</TestPackage>" >> ${PACKAGE_PATH} |
| 81 | } |
| 82 | |
The Android Open Source Project | 7ca56df | 2009-03-18 17:39:42 -0700 | [diff] [blame] | 83 | # Genrate the header of the test plan XML file. |
| 84 | genTestPlanHeader() { |
| 85 | TEST_PLAN=${1} |
The Android Open Source Project | f805710 | 2009-03-15 16:47:16 -0700 | [diff] [blame] | 86 | echo "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>" > ${TEST_PLAN} |
| 87 | echo "<TestPlan version=\"1.0\">" >> ${TEST_PLAN} |
The Android Open Source Project | 7ca56df | 2009-03-18 17:39:42 -0700 | [diff] [blame] | 88 | } |
The Android Open Source Project | f805710 | 2009-03-15 16:47:16 -0700 | [diff] [blame] | 89 | |
The Android Open Source Project | 7ca56df | 2009-03-18 17:39:42 -0700 | [diff] [blame] | 90 | # add one entry into test plan XML file. |
| 91 | addTestPlanEntry() { |
| 92 | TEST_PLAN=${1} |
| 93 | APP_JAVA_PKG_NAME=${2} |
| 94 | entry=$(grep "<Entry uri=\"${APP_JAVA_PKG_NAME}\"/>" ${TEST_PLAN}) |
| 95 | if [ "${entry}" == "" ]; then |
| 96 | echo "<Entry uri=\"${APP_JAVA_PKG_NAME}\"/>" >> ${TEST_PLAN} |
The Android Open Source Project | f805710 | 2009-03-15 16:47:16 -0700 | [diff] [blame] | 97 | fi |
The Android Open Source Project | 7ca56df | 2009-03-18 17:39:42 -0700 | [diff] [blame] | 98 | } |
| 99 | |
| 100 | # Process the inclusive list. |
| 101 | procInclusiveList() { |
| 102 | TESTCASE_PATH=${1} |
| 103 | TEST_PLAN=${2} |
| 104 | INC_LIST=${3} |
| 105 | |
| 106 | for FILE_NAME in $(ls ${TESTCASE_PATH}/*.xml); do |
| 107 | APP_JAVA_PKG_NAME=$(parseXML ${FILE_NAME} TestPackage appPackageName | sed 's/\"//g') |
| 108 | for INC_NAME in ${INC_LIST} ; do |
| 109 | if [ "${INC_NAME}" == "${APP_JAVA_PKG_NAME}" ]; then |
| 110 | addTestPlanEntry ${TEST_PLAN} ${APP_JAVA_PKG_NAME} |
| 111 | fi |
| 112 | done |
| 113 | done |
| 114 | } |
| 115 | |
| 116 | # Process the exclusive list. |
| 117 | procExclusiveList() { |
| 118 | TESTCASE_PATH=${1} |
| 119 | TEST_PLAN=${2} |
| 120 | EXC_LIST=${3} |
| 121 | |
| 122 | for FILE_NAME in $(ls ${TESTCASE_PATH}/*.xml); do |
| 123 | APP_JAVA_PKG_NAME=$(parseXML ${FILE_NAME} TestPackage appPackageName | sed 's/\"//g') |
| 124 | excluded="" |
| 125 | for EXC_NAME in ${EXC_LIST} ; do |
| 126 | if [ "${EXC_NAME}" == "${APP_JAVA_PKG_NAME}" ]; then |
| 127 | excluded="true" |
| 128 | fi |
| 129 | done |
| 130 | if [ "${excluded}" != "true" ]; then |
| 131 | addTestPlanEntry ${TEST_PLAN} ${APP_JAVA_PKG_NAME} |
The Android Open Source Project | f805710 | 2009-03-15 16:47:16 -0700 | [diff] [blame] | 132 | fi |
| 133 | done |
The Android Open Source Project | 7ca56df | 2009-03-18 17:39:42 -0700 | [diff] [blame] | 134 | } |
| 135 | |
| 136 | # Generate test plan with given information. |
| 137 | genTestPlan() { |
| 138 | TESTCASE_PATH=${1} |
| 139 | TEST_PLAN=${2} |
| 140 | TYPE=${3} |
| 141 | LIST=${4} |
| 142 | |
| 143 | genTestPlanHeader ${TEST_PLAN}; |
| 144 | if [ "${TYPE}" == "inclusive" ]; then |
| 145 | procInclusiveList ${TESTCASE_PATH} ${TEST_PLAN} "${LIST}" |
| 146 | else |
| 147 | procExclusiveList ${TESTCASE_PATH} ${TEST_PLAN} "${LIST}" |
| 148 | fi |
The Android Open Source Project | f805710 | 2009-03-15 16:47:16 -0700 | [diff] [blame] | 149 | echo "</TestPlan>" >> ${TEST_PLAN} |
| 150 | } |
| 151 | |
The Android Open Source Project | 7ca56df | 2009-03-18 17:39:42 -0700 | [diff] [blame] | 152 | # Generate all of the default test plans |
| 153 | generateAllTestPlans() { |
| 154 | TESTCASE_PATH=${1} |
| 155 | PLAN_PATH=${2} |
| 156 | |
| 157 | TEST_PLAN=${PLAN_PATH}/CTS.xml |
Phil Dubach | 7c19589 | 2009-05-05 16:21:58 -0700 | [diff] [blame] | 158 | LIST="${PERFORMANCE_TESTS}" |
The Android Open Source Project | 7ca56df | 2009-03-18 17:39:42 -0700 | [diff] [blame] | 159 | TYPE="exclusive" |
| 160 | genTestPlan ${TESTCASE_PATH} ${TEST_PLAN} ${TYPE} "${LIST}" |
| 161 | |
| 162 | TEST_PLAN=${PLAN_PATH}/Android.xml |
Phil Dubach | 7c19589 | 2009-05-05 16:21:58 -0700 | [diff] [blame] | 163 | LIST="${SIGNATURE_TESTS} ${ANDROID_CORE_TESTS} ${ANDROID_CORE_VM_TESTS} ${PERFORMANCE_TESTS}" |
The Android Open Source Project | 7ca56df | 2009-03-18 17:39:42 -0700 | [diff] [blame] | 164 | TYPE="exclusive" |
| 165 | genTestPlan ${TESTCASE_PATH} ${TEST_PLAN} ${TYPE} "${LIST}" |
| 166 | |
| 167 | TEST_PLAN=${PLAN_PATH}/Java.xml |
| 168 | LIST="${ANDROID_CORE_TESTS}" |
| 169 | TYPE="inclusive" |
| 170 | genTestPlan ${TESTCASE_PATH} ${TEST_PLAN} ${TYPE} "${LIST}" |
| 171 | |
| 172 | TEST_PLAN=${PLAN_PATH}/VM.xml |
| 173 | LIST="${ANDROID_CORE_VM_TESTS}" |
| 174 | TYPE="inclusive" |
| 175 | genTestPlan ${TESTCASE_PATH} ${TEST_PLAN} ${TYPE} "${LIST}" |
| 176 | |
| 177 | TEST_PLAN=${PLAN_PATH}/Signature.xml |
| 178 | LIST="${SIGNATURE_TESTS}" |
| 179 | TYPE="inclusive" |
| 180 | genTestPlan ${TESTCASE_PATH} ${TEST_PLAN} ${TYPE} "${LIST}" |
Bill Napier | c8a5cde | 2009-04-17 14:31:38 -0700 | [diff] [blame] | 181 | |
| 182 | TEST_PLAN=${PLAN_PATH}/RefApp.xml |
| 183 | LIST="${REFERENCE_APP_TESTS}" |
| 184 | TYPE="inclusive" |
| 185 | genTestPlan ${TESTCASE_PATH} ${TEST_PLAN} ${TYPE} "${LIST}" |
Bill Napier | 56e6fe1 | 2009-04-23 10:15:53 -0700 | [diff] [blame] | 186 | |
| 187 | TEST_PLAN=${PLAN_PATH}/Performance.xml |
| 188 | LIST="${PERFORMANCE_TESTS}" |
| 189 | TYPE="inclusive" |
| 190 | genTestPlan ${TESTCASE_PATH} ${TEST_PLAN} ${TYPE} "${LIST}" |
The Android Open Source Project | 7ca56df | 2009-03-18 17:39:42 -0700 | [diff] [blame] | 191 | } |
The Android Open Source Project | f805710 | 2009-03-15 16:47:16 -0700 | [diff] [blame] | 192 | |
| 193 | # Build the DescriptionGenerator as the Doclet |
| 194 | buildDescriptionGenerator() { |
| 195 | OUT=${1} |
| 196 | READLINK_OPT="" |
| 197 | HOST=$(uname -s | tr 'A-Z' 'a-z') |
| 198 | if [ ${HOST} != "darwin" ]; then |
| 199 | READLINK_OPT="-m" |
| 200 | fi; |
| 201 | |
| 202 | echo "Build "Description generator"" |
| 203 | JAVADOC_PATH=$(readlink ${READLINK_OPT} $(which javadoc)) |
| 204 | JAVADOC_LIBS=$(echo ${JAVADOC_PATH} | sed 's/bin\/javadoc/lib\//') |
| 205 | |
| 206 | javac -d ${OUT} -extdirs ${JAVADOC_LIBS} \ |
| 207 | ${CTS_ROOT}/utils/DescriptionGenerator.java |
| 208 | } |
| 209 | |
| 210 | addControllerInfo() { |
| 211 | CTSROOT=${1} |
| 212 | OUT=${2} |
| 213 | XMLNAME=${3} |
| 214 | APP_PACKAGE_NAME=${4} |
| 215 | |
| 216 | MANIFEST="AndroidManifest.xml" |
| 217 | MAKEFILE="Android.mk" |
| 218 | TARGET_BINARY_MARK="LOCAL_INSTRUMENTATION_FOR" |
| 219 | HOST_CONTROLLER_NAME="hostController.jar" |
| 220 | |
| 221 | APP_NAME_SPACE=$(parseXML ${CTSROOT}/${MANIFEST} manifest package | sed 's/\"//g') |
| 222 | RUNNER_NAME=$(parseXML ${CTSROOT}/${MANIFEST} instrumentation android:name | sed 's/\"//g') |
| 223 | TARGET_NAME_SPACE=$(parseXML ${CTSROOT}/${MANIFEST} instrumentation android:targetPackage | sed 's/\"//g') |
| 224 | TARGET_BINARY_NAME=$(cat ${CTSROOT}/${MAKEFILE} | grep "LOCAL_INSTRUMENTATION_FOR :=" | cut -d"=" -f2 | sed 's/^[ \t]*//g;s/[ \t]*$//g') |
| 225 | if [ -z "${RUNNER_NAME}" ] ; then |
| 226 | echo "Can't find instrumentation in the manifest file." |
| 227 | return 1; |
| 228 | fi |
| 229 | |
| 230 | HOST_CONTROLLER_LOCATION=$(find ${ANDROID_OUT_ROOT} -type f -name ${HOST_CONTROLLER_NAME}) |
| 231 | if [ -f "${HOST_CONTROLLER_LOCATION}" ]; then |
| 232 | cp -f ${HOST_CONTROLLER_LOCATION} ${CASE_REPOSITORY}/${HOST_CONTROLLER_NAME} |
| 233 | XML_INFO="jarPath=\"${HOST_CONTROLLER_NAME}\" name=\"${XMLNAME}\" "\ |
| 234 | "runner=\"${RUNNER_NAME}\" appNameSpace=\"${APP_NAME_SPACE}\" appPackageName=\"${APP_PACKAGE_NAME}\"" |
| 235 | else |
| 236 | XML_INFO="jarPath=\"\" name=\"${XMLNAME}\" runner=\"${RUNNER_NAME}\" "\ |
| 237 | "appNameSpace=\"${APP_NAME_SPACE}\" appPackageName=\"${APP_PACKAGE_NAME}\"" |
| 238 | fi |
| 239 | |
| 240 | if [ "${PACKAGE_NAME}" != "${TARGET_PACKAGE_NAME}" ]; then |
| 241 | # A dependancy is required by this package |
| 242 | XML_INFO="${XML_INFO} targetNameSpace=\"${TARGET_NAME_SPACE}\" targetBinaryName=\"${TARGET_BINARY_NAME}\"" |
| 243 | fi |
| 244 | # Update "Package description" file |
| 245 | sed 's/XML_INFO=\"\"/'"${XML_INFO}"'/' ${OUT}/description.xml \ |
| 246 | > ${CASE_REPOSITORY}/${XMLNAME}.xml |
| 247 | } |
| 248 | |
| 249 | # Generate "Package description" file |
| 250 | generatePackageDescription() { |
| 251 | SRC=${1} |
| 252 | OUT=${2} |
| 253 | |
| 254 | # Build "Description generator" if not available |
| 255 | if [ ! -f ${OUT}/DescriptionGenerator.class ]; then |
| 256 | buildDescriptionGenerator ${OUT} |
| 257 | fi |
| 258 | SOURCES=$(find ${SRC} -type f -name "*.java") |
| 259 | |
| 260 | echo "Generating TestCases description file from ${SRC}..." |
| 261 | javadoc -J-Xmx256m -quiet -doclet DescriptionGenerator -docletpath ${OUT} -sourcepath \ |
| 262 | ${TOP_DIR}/frameworks/base/awt/java:\ |
| 263 | ${TOP_DIR}/frameworks/base/core/java:\ |
| 264 | ${TOP_DIR}/frameworks/base/graphics/java:\ |
| 265 | ${TOP_DIR}/frameworks/base/location/java:\ |
| 266 | ${TOP_DIR}/frameworks/base/media/java:\ |
| 267 | ${TOP_DIR}/frameworks/base/opengl/java:\ |
| 268 | ${TOP_DIR}/frameworks/base/sax/java:\ |
| 269 | ${TOP_DIR}/frameworks/base/services/java:\ |
| 270 | ${TOP_DIR}/frameworks/base/telephony/java:\ |
| 271 | ${TOP_DIR}/frameworks/base/wifi/java:\ |
| 272 | ${TOP_DIR}/frameworks/base/test-runner:\ |
| 273 | ${TOP_DIR}/cts/tests/tests/app/src:\ |
| 274 | ${TOP_DIR}/cts/tests/tests/content/src:\ |
| 275 | ${TOP_DIR}/cts/tests/tests/database/src:\ |
| 276 | ${TOP_DIR}/cts/tests/tests/graphics/src:\ |
| 277 | ${TOP_DIR}/cts/tests/tests/hardware/src:\ |
| 278 | ${TOP_DIR}/cts/tests/tests/location/src:\ |
| 279 | ${TOP_DIR}/cts/tests/tests/media/src:\ |
| 280 | ${TOP_DIR}/cts/tests/tests/net/src:\ |
| 281 | ${TOP_DIR}/cts/tests/tests/os/src:\ |
| 282 | ${TOP_DIR}/cts/tests/tests/permission/src:\ |
Brett Chabot | 03177f1 | 2009-08-13 21:23:28 -0700 | [diff] [blame^] | 283 | ${TOP_DIR}/cts/tests/tests/permission2/src:\ |
The Android Open Source Project | f805710 | 2009-03-15 16:47:16 -0700 | [diff] [blame] | 284 | ${TOP_DIR}/cts/tests/tests/preference/src:\ |
| 285 | ${TOP_DIR}/cts/tests/tests/provider/src:\ |
| 286 | ${TOP_DIR}/cts/tests/tests/telephony/src:\ |
| 287 | ${TOP_DIR}/cts/tests/tests/text/src:\ |
| 288 | ${TOP_DIR}/cts/tests/tests/util/src:\ |
| 289 | ${TOP_DIR}/cts/tests/tests/view/src:\ |
| 290 | ${TOP_DIR}/cts/tests/tests/widget/src:\ |
Bill Napier | 56e6fe1 | 2009-04-23 10:15:53 -0700 | [diff] [blame] | 291 | ${TOP_DIR}/cts/tests/tests/performance/src:\ |
| 292 | ${TOP_DIR}/cts/tests/tests/performance2/src:\ |
| 293 | ${TOP_DIR}/cts/tests/tests/performance3/src:\ |
| 294 | ${TOP_DIR}/cts/tests/tests/performance4/src:\ |
| 295 | ${TOP_DIR}/cts/tests/tests/performance5/src:\ |
The Android Open Source Project | f805710 | 2009-03-15 16:47:16 -0700 | [diff] [blame] | 296 | ${TOP_DIR}/dalvik/libcore/dalvik/src/main/java:\ |
| 297 | ${TOP_DIR}/dalvik/libcore/junit/src/main/java \ |
| 298 | ${SOURCES} 1>/dev/null 2>/dev/null |
| 299 | mv description.xml ${OUT}/description.xml |
| 300 | } |
| 301 | |
| 302 | if [ $# -ne 6 ]; then |
| 303 | echo "Usage ${0} <source dir> <destination dir> <temp dir> <top dir> "\ |
| 304 | "<target common out root> == JAVA_LIBS=${5}/obj/JAVA_LIBRARIES <android out dir>" |
| 305 | exit 1 |
| 306 | fi |
| 307 | |
| 308 | TESTCASES_SOURCE=${1} |
| 309 | OUT_DIR=${2} |
| 310 | TEMP_DIR=${3} |
| 311 | TOP_DIR=${4} |
| 312 | JAVA_LIBS=${5}/obj/JAVA_LIBRARIES |
| 313 | ANDROID_OUT_ROOT=${6} |
| 314 | CTS_ROOT=${TOP_DIR}/cts/tools |
| 315 | CASE_REPOSITORY=${OUT_DIR}/repository/testcases |
| 316 | PLAN_REPOSITORY=${OUT_DIR}/repository/plans |
| 317 | |
The Android Open Source Project | 7671bec | 2009-03-19 23:08:36 -0700 | [diff] [blame] | 318 | SIGNATURE_TEST_NAME="SignatureTest" |
| 319 | SIGNATURE_TESTS="android.tests.sigtest" |
| 320 | SIGNATURE_CHECK_PATH="${CASE_REPOSITORY}/${SIGNATURE_TEST_NAME}.xml" |
The Android Open Source Project | f805710 | 2009-03-15 16:47:16 -0700 | [diff] [blame] | 321 | |
Jorg Pleumann | 4613a90 | 2009-04-24 13:40:00 -0700 | [diff] [blame] | 322 | ANDROID_CORE_TESTS="android.core.tests.annotation android.core.tests.archive android.core.tests.concurrent android.core.tests.crypto android.core.tests.dom android.core.tests.logging android.core.tests.luni.io android.core.tests.luni.lang android.core.tests.luni.net android.core.tests.luni.util android.core.tests.math android.core.tests.nio android.core.tests.nio_char android.core.tests.prefs android.core.tests.regex android.core.tests.security android.core.tests.sql android.core.tests.text android.core.tests.xml android.core.tests.xnet" |
The Android Open Source Project | 7ca56df | 2009-03-18 17:39:42 -0700 | [diff] [blame] | 323 | ANDROID_CORE_VM_TESTS="android.core.vm-tests" |
The Android Open Source Project | f805710 | 2009-03-15 16:47:16 -0700 | [diff] [blame] | 324 | |
| 325 | #Creating Signature check description xml file, if not existed. |
| 326 | generateSignatureCheckDescription |
| 327 | |
Bill Napier | c8a5cde | 2009-04-17 14:31:38 -0700 | [diff] [blame] | 328 | REFERENCE_APP_TESTS="android.apidemos.cts" |
| 329 | |
| 330 | API_DEMOS_REFERENCE_NAME="ApiDemosReferenceTest" |
| 331 | API_DEMOS_REFERENCE_PATH="${CASE_REPOSITORY}/${API_DEMOS_REFERENCE_NAME}.xml" |
| 332 | |
Bill Napier | 56e6fe1 | 2009-04-23 10:15:53 -0700 | [diff] [blame] | 333 | PERFORMANCE_TESTS="android.performance android.performance2 android.performance3 android.performance4 android.performance5" |
| 334 | |
Bill Napier | c8a5cde | 2009-04-17 14:31:38 -0700 | [diff] [blame] | 335 | generateReferenceAppDescription "ApiDemosReferenceTest"\ |
| 336 | ${API_DEMOS_REFERENCE_PATH}\ |
| 337 | "android.apidemos.cts"\ |
| 338 | "ApiDemosTest"\ |
| 339 | "testNumberOfItemsInListView"\ |
| 340 | "ApiDemos"\ |
| 341 | "com.example.android.apis" |
| 342 | |
The Android Open Source Project | f805710 | 2009-03-15 16:47:16 -0700 | [diff] [blame] | 343 | # Every test case package ends with "cts" |
| 344 | for CASE_SOURCE in $(find ${TESTCASES_SOURCE} -type d | grep "cts$" | sed 's/\/\//\//'); do |
| 345 | TARGET_PACKAGE_NAME=$(echo ${CASE_SOURCE} | sed 's/^.*src\///g' | sed 's/\/cts//g' | sed 's/\//./g' | sed 's/android\..*\..*//g') |
| 346 | |
The Android Open Source Project | f805710 | 2009-03-15 16:47:16 -0700 | [diff] [blame] | 347 | if [ x${TARGET_PACKAGE_NAME} != x ]; then |
| 348 | # TODO: translate this script to python to reduce dependencies on external tools |
| 349 | # darwin sed does not support \u in replacement pattern, use perl for now |
Phil Dubach | 48f63bd | 2009-04-30 17:04:12 -0700 | [diff] [blame] | 350 | NAME=$(echo $TARGET_PACKAGE_NAME | sed 's/android\.//g' | perl -p -e 's/([a-z])([a-zA-Z0-9]*)/\u\1\2/g' | sed 's/^/Cts/g' | sed 's/$/TestCases/g') |
The Android Open Source Project | f805710 | 2009-03-15 16:47:16 -0700 | [diff] [blame] | 351 | |
| 352 | if [ x${NAME} != x ]; then |
Phil Dubach | 48f63bd | 2009-04-30 17:04:12 -0700 | [diff] [blame] | 353 | # TODO: Currently hard coded as -f4, should find a better way to remove this hard code |
The Android Open Source Project | f805710 | 2009-03-15 16:47:16 -0700 | [diff] [blame] | 354 | TESTCASE_DIR=$TESTCASES_SOURCE$(echo $CASE_SOURCE | cut -d"/" -f4) |
| 355 | |
Phil Dubach | 48f63bd | 2009-04-30 17:04:12 -0700 | [diff] [blame] | 356 | # Since case source java packages always end in cts, we need to |
| 357 | # start the search for sources in the parent package, so that e.g. |
| 358 | # the android.content.cts test package also includes the sources in |
| 359 | # android.content.pm.cts. |
| 360 | CASE_SOURCE_PARENT=$(echo ${CASE_SOURCE} | sed 's/\/cts$//g') |
| 361 | generatePackageDescription ${CASE_SOURCE_PARENT} ${TEMP_DIR} |
The Android Open Source Project | f805710 | 2009-03-15 16:47:16 -0700 | [diff] [blame] | 362 | addControllerInfo ${TESTCASE_DIR} ${TEMP_DIR} ${NAME} ${TARGET_PACKAGE_NAME} |
| 363 | if [[ $? -ne 0 ]]; then |
| 364 | exit 1 |
| 365 | fi |
| 366 | fi |
| 367 | fi |
| 368 | done |
| 369 | |
The Android Open Source Project | 7ca56df | 2009-03-18 17:39:42 -0700 | [diff] [blame] | 370 | # Creating the default test plans |
| 371 | generateAllTestPlans ${CASE_REPOSITORY} ${PLAN_REPOSITORY} |