diff options
author | Jinhui Wang <jinhuiw@google.com> | 2016-06-22 20:21:56 -0700 |
---|---|---|
committer | Jinhui Wang <jinhuiw@google.com> | 2016-06-23 08:43:15 -0700 |
commit | bb970fbb3cc2054794e24b3db967d8f45e6b0f7b (patch) | |
tree | 247578135efe39d3dd90af080f9032395ad3b206 | |
parent | aac3337444cdb29ce5af697888fad57dd7019c78 (diff) | |
download | AfwTestHarness-bb970fbb3cc2054794e24b3db967d8f45e6b0f7b.tar.gz |
Added build files for apps/tests/tradefed
To build the harness: make afw-test-harness
Change-Id: I00efa76f359db4e59094eb3aee7693d7d30dc706
-rw-r--r-- | AfwTestCaseList.mk | 43 | ||||
-rw-r--r-- | AfwTestHarnessBuild.mk | 69 | ||||
-rw-r--r-- | AfwTestHarnessBuildUtil.mk | 27 | ||||
-rw-r--r-- | Android.mk | 4 | ||||
-rw-r--r-- | README | 54 | ||||
-rw-r--r-- | afw-test.props | 14 | ||||
-rw-r--r-- | apps/DeviceAdmin/Android.mk | 2 | ||||
-rw-r--r-- | apps/SystemUtil/Android.mk | 2 | ||||
-rw-r--r-- | build/config.mk | 26 | ||||
-rw-r--r-- | build/module_test_config.mk | 24 | ||||
-rw-r--r-- | build/support_package.mk | 35 | ||||
-rw-r--r-- | build/test_package.mk | 60 | ||||
-rw-r--r-- | tests/NfcProvisioning/Android.mk | 2 | ||||
-rw-r--r-- | tests/NonSuwPoProvisioning/Android.mk | 2 | ||||
-rw-r--r-- | tests/SuwDoProvisioning/Android.mk | 2 | ||||
-rw-r--r-- | tests/SuwPoProvisioning/Android.mk | 2 | ||||
-rw-r--r-- | tests/TestPlanDef.xml | 1 | ||||
-rwxr-xr-x | tools/tradefed-host/etc/afw-test-tradefed | 3 |
18 files changed, 364 insertions, 8 deletions
diff --git a/AfwTestCaseList.mk b/AfwTestCaseList.mk new file mode 100644 index 0000000..611b4d6 --- /dev/null +++ b/AfwTestCaseList.mk @@ -0,0 +1,43 @@ +# +# Copyright (C) 2016 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. +# + +# Test packages that require an associated test package XML. +afw_th_test_packages := \ + AfwTestNfcProvisioningTestCases \ + AfwTestNonSuwPoProvisioningTestCases \ + AfwTestSuwDoProvisioningTestCases + +# Support packages +afw_th_support_packages := \ + AfwThDeviceAdmin \ + AfwThSystemUtil + + +# All the test case apk files that will end up under the repository/testcases +# directory of the final AfW Test distribution. +AFW_TH_TEST_CASES := $(call afw-th-get-package-paths,$(afw_th_test_packages)) + +# All the support apk files that will end up under repository/testcases +# directory of the final AfW Test distribution. +AFW_TH_SUPPORT_PACKAGE_APKS := $(call afw-th-get-package-paths,$(afw_th_support_packages)) + +# All the XMLs that will end up under the repository/testcases +# and that need to be created before making the final AfW Test Harness distribution. +AFW_TH_TEST_XMLS := $(call afw-th-get-test-xmls,$(afw_th_test_packages)) + +# The following files will be placed in the tools directory of the Harness distribution +AFW_TH_TOOLS_LIST := + diff --git a/AfwTestHarnessBuild.mk b/AfwTestHarnessBuild.mk new file mode 100644 index 0000000..a315af4 --- /dev/null +++ b/AfwTestHarnessBuild.mk @@ -0,0 +1,69 @@ +# +# Copyright (C) 2016 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. +# + +-include test/AfwTestHarness/AfwTestCaseList.mk + +afw_th_src_dir := test/AfwTestHarness +afw_th_dir := $(HOST_OUT)/afw-test +afw_th_tools_src_dir := $(afw_th_src_dir)/tools +afw_th_tests_src_dir := $(afw_th_src_dir)/tests + +AFW_TH_TF_JAR := $(HOST_OUT_JAVA_LIBRARIES)/afw-test-tradefed.jar +AFW_TH_TF_EXEC_PATH ?= $(HOST_OUT_EXECUTABLES)/afw-test-tradefed +AFW_TH_TF_README_PATH := $(afw_th_tools_src_dir)/tradefed-host/README + +DEFAULT_TEST_PLAN := $(afw_th_dir)/android-cts/resource/plans +$(afw_th_dir)/all_afw_th_files_stamp: $(AFW_TH_TEST_CASES) $(AFW_TH_SUPPORT_PACKAGE_APKS) $(TF_JAR) $(AFW_TH_TF_JAR) $(AFW_TH_TF_EXEC_PATH) $(AFW_TH_TF_README_PATH) $(ACP) + +# Make necessary directory for afw-test + $(hide) mkdir -p $(TMP_DIR) + $(hide) mkdir -p $(PRIVATE_DIR)/tools + $(hide) mkdir -p $(PRIVATE_DIR)/repository/testcases + $(hide) mkdir -p $(PRIVATE_DIR)/repository/plans +# Copy executable and JARs to afw-test directory + $(hide) $(ACP) -fp $(TF_JAR) $(AFW_TH_TF_JAR) $(AFW_TH_TF_EXEC_PATH) $(AFW_TH_TF_README_PATH) $(PRIVATE_DIR)/tools +# Copy prebuilt TestDeviceSetup which is required for afw-test-tradefed + $(hide) $(ACP) -f $(afw_th_tools_src_dir)/prebuilt/TestDeviceSetup.apk $(PRIVATE_DIR)/repository/testcases +# Copy prebuilt CtsDeviceInfo which is required for afw-test-tradefed + $(hide) $(ACP) -f $(afw_th_tools_src_dir)/prebuilt/CtsDeviceInfo.apk $(PRIVATE_DIR)/repository/testcases + $(hide) touch $@ + + +# Generate the default test plan for User. +# Usage: buildAfwTest.py <testRoot> <ctsOutputDir> <tempDir> <androidRootDir> <docletPath> + +$(DEFAULT_TEST_PLAN): $(afw_th_dir)/all_afw_th_files_stamp $(afw_th_tools_src_dir)/utils/buildAfwTest.py $(AFW_TH_TEST_XMLS) + $(hide) $(afw_th_tools_src_dir)/utils/buildAfwTest.py ${afw_th_tests_src_dir} $(PRIVATE_DIR) $(TMP_DIR) $(TOP) $(afw_th_tests_src_dir)/TestPlanDef.xml + $(hide) mkdir -p $(dir $@) && touch $@ + + +afw_th_name := android-afw-test-harness + +# Package afw-test and clean up. +# +INTERNAL_AFW_TH_TARGET := $(afw_th_dir)/$(afw_th_name).zip +$(INTERNAL_AFW_TH_TARGET): PRIVATE_NAME := android-cts +$(INTERNAL_AFW_TH_TARGET): PRIVATE_AFW_TH_DIR := $(afw_th_dir) +$(INTERNAL_AFW_TH_TARGET): PRIVATE_DIR := $(afw_th_dir)/android-cts +$(INTERNAL_AFW_TH_TARGET): TMP_DIR := $(afw_th_dir)/temp +$(INTERNAL_AFW_TH_TARGET): $(afw_th_dir)/all_afw_th_files_stamp $(DEFAULT_TEST_PLAN) + $(hide) echo "Package Android for Work Test Harness: $@" + $(hide) $(ACP) -f $(afw_th_src_dir)/afw-test.props $(PRIVATE_DIR)/repository/testcases + $(hide) cd $(dir $@) && zip -rq $(notdir $@) $(PRIVATE_NAME) + +.PHONY: afw-test-harness +afw-test-harness: $(INTERNAL_AFW_TH_TARGET) adb + diff --git a/AfwTestHarnessBuildUtil.mk b/AfwTestHarnessBuildUtil.mk new file mode 100644 index 0000000..8a3ad92 --- /dev/null +++ b/AfwTestHarnessBuildUtil.mk @@ -0,0 +1,27 @@ +# +# Copyright (C) 2016 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. +# + +LOCAL_PATH := $(call my-dir) + +# Functions to get the paths of the build outputs. +define afw-th-get-package-paths + $(foreach pkg,$(1),$(AFW_TH_TESTCASES_OUT)/$(pkg).apk) +endef + +define afw-th-get-test-xmls + $(foreach name,$(1),$(AFW_TH_TESTCASES_OUT)/$(name).xml) +endef + @@ -14,4 +14,8 @@ # limitations under the License. # +include test/AfwTestHarness/build/config.mk +include test/AfwTestHarness/AfwTestHarnessBuildUtil.mk +include test/AfwTestHarness/AfwTestHarnessBuild.mk + include $(call all-subdir-makefiles) @@ -0,0 +1,54 @@ +Android For Work (Afw) Test Harness +----------------------------------------------------- +About + +Afw Test Harness is designed to validate Android for Work compativility of +Android devices. It's a test suite consisting of apps, test cases and the test +runner. The test runner, afw-test-tradefed, is built on top of cts-tradefed. +The way of building & running Afw Test Harness is quite similar to CTS. + + +Build & Run +----------- +1. Build the suite: make afw-test-harness + + Similar to CTS, "make afw-test-harness" will create a directory, + + out/host/<platform>/afw-test/android-cts, + + which contains all necessary binaries, configuration files and tools to + run the test suite. This directory is also zipped into a zip file, + android-afw-test-harness.zip, for distribution. + + To run afw-test locally, you need a testing account, which can be obtained + from https://android-for-work-test-harness.appspot.com. + + Add the account & password to afw-test.props file, for key "work_account_username" + and "work_account_password" correspondingly. + You might need to re-build the harness so that the account is picked up. + Double check the account and password are in output file: + + out/host/<platform>/afw-test/android-cts/repository/testcases/afw-test.props + +2. Launch tradefed: afw-test-tradefed + +3. Run the test plan "afw-userdebug-build": run cts --plan afw-userdebug-build + + Type 'list plans' to see all the test plans. + + Plan definitions can be found in: + out/host/<platform>/afw-test/android-cts/repository/plans. + + Each test plan is a xml file which contains all or several test packages from + afw-test/tests. + + Plan 'afw-userdebug-build' contains all test packages that require a userdebug build. + Plan 'afw-user-build' can run on user build but requires the test device to be setup + properly, including completing Setup Wizard and enabling USB debugging. + +4. Run a single test package, for example "com.android.afwtest.nfcprovisioning" + + run cts --package com.google.android.afwtest.NfcProvisioning + + All packages can be found by executing "list packages" command in afw-test-tradefed console. + diff --git a/afw-test.props b/afw-test.props new file mode 100644 index 0000000..2488a70 --- /dev/null +++ b/afw-test.props @@ -0,0 +1,14 @@ +device_admin_pkg_name=com.afwsamples.testdpc +device_admin_pkg_location=https://testdpc-latest-apk.appspot.com +device_admin_pkg_signature_hash=gJD2YwtOiWJHkSMkkIfLRlj-quNqG1fb6v100QmzM9w= +wifi_ssid= +wifi_password= +wifi_security_type= +work_account_username= +work_account_password= +factory_reset_timeout_min=20 +timeout_size=M +test_timeout_min= +mute_app_crash_dialogs=true +app_crash_whitelist= +oem_widgets= diff --git a/apps/DeviceAdmin/Android.mk b/apps/DeviceAdmin/Android.mk index a107fbe..872af31 100644 --- a/apps/DeviceAdmin/Android.mk +++ b/apps/DeviceAdmin/Android.mk @@ -30,4 +30,4 @@ LOCAL_PACKAGE_NAME := AfwThDeviceAdmin LOCAL_SDK_VERSION := 22 -include $(BUILD_AFW_TH_SUPPORT_PACKAGE) +include $(BUILD_AFW_TEST_SUPPORT_PACKAGE) diff --git a/apps/SystemUtil/Android.mk b/apps/SystemUtil/Android.mk index 2ea02ab..6c14d18 100644 --- a/apps/SystemUtil/Android.mk +++ b/apps/SystemUtil/Android.mk @@ -30,4 +30,4 @@ LOCAL_PACKAGE_NAME := AfwThSystemUtil LOCAL_SDK_VERSION := 22 -include $(BUILD_AFW_TH_SUPPORT_PACKAGE) +include $(BUILD_AFW_TEST_SUPPORT_PACKAGE) diff --git a/build/config.mk b/build/config.mk new file mode 100644 index 0000000..b2bd5e5 --- /dev/null +++ b/build/config.mk @@ -0,0 +1,26 @@ +# +# Copyright (C) 2016 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. +# + +AFW_TH_TESTCASES_OUT := $(HOST_OUT)/afw-test/android-cts/repository/testcases + +# default module config filename +AFW_TEST_MODULE_TEST_CONFIG := AndroidTest.xml + +# customized test package build rule +BUILD_AFW_TEST_PACKAGE := test/AfwTestHarness/build/test_package.mk +BUILD_AFW_TEST_SUPPORT_PACKAGE := test/AfwTestHarness/build/support_package.mk +BUILD_AFW_TEST_MODULE_TEST_CONFIG := test/AfwTestHarness/build/module_test_config.mk + diff --git a/build/module_test_config.mk b/build/module_test_config.mk new file mode 100644 index 0000000..1ef889f --- /dev/null +++ b/build/module_test_config.mk @@ -0,0 +1,24 @@ +# +# Copyright (C) 2016 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. +# + +ifneq ($(LOCAL_AFW_TEST_MODULE_CONFIG),) +afw_test_module_test_config := $(AFW_TH_TESTCASES_OUT)/$(LOCAL_MODULE).config +$(afw_test_module_test_config): $(LOCAL_AFW_TEST_MODULE_CONFIG) | $(ACP) + $(call copy-file-to-target) +endif +# clear var +LOCAL_AFW_TEST_MODULE_CONFIG := + diff --git a/build/support_package.mk b/build/support_package.mk new file mode 100644 index 0000000..666a1da --- /dev/null +++ b/build/support_package.mk @@ -0,0 +1,35 @@ +# +# Copyright (C) 2016 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. +# + +# +# Builds a package which is needed by a test package +# +# Replace "include $(BUILD_PACKAGE)" with "include $(BUILD_AFW_TEST_SUPPORT_PACKAGE)" +# +LOCAL_DEX_PREOPT := false +LOCAL_PROGUARD_ENABLED := disabled + +include $(BUILD_PACKAGE) + +afw_test_support_apks := +$(foreach fp, $(ALL_MODULES.$(LOCAL_PACKAGE_NAME).BUILT_INSTALLED),\ + $(eval pair := $(subst :,$(space),$(fp)))\ + $(eval built := $(word 1,$(pair)))\ + $(eval installed := $(AFW_TH_TESTCASES_OUT)/$(notdir $(word 2,$(pair))))\ + $(eval $(call copy-one-file, $(built), $(installed)))\ + $(eval afw_test_support_apks += $(installed))) + +$(my_register_name) : $(afw_test_support_apks) diff --git a/build/test_package.mk b/build/test_package.mk new file mode 100644 index 0000000..76d2ede --- /dev/null +++ b/build/test_package.mk @@ -0,0 +1,60 @@ +# +# Copyright (C) 2016 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. +# +# +# Builds a package and defines a rule to generate the associated test +# package XML needed by the tradefed. +# +# Replace "include $(BUILD_PACKAGE)" with "include $(BUILD_AFW_TEST_PACKAGE)" +# + +LOCAL_DEX_PREOPT := false +LOCAL_PROGUARD_ENABLED := disabled + +include $(BUILD_AFW_TEST_SUPPORT_PACKAGE) +include $(BUILD_AFW_TEST_MODULE_TEST_CONFIG) + +afw_test_src_dirs := $(LOCAL_PATH) +afw_test_src_dirs += $(sort $(dir $(LOCAL_GENERATED_SOURCES))) +afw_test_src_dirs := $(addprefix -s , $(afw_test_src_dirs)) + +afw_test_package_xml := $(AFW_TH_TESTCASES_OUT)/$(LOCAL_PACKAGE_NAME).xml +$(afw_test_package_xml): PRIVATE_SRC_DIRS := $(afw_test_src_dirs) +$(afw_test_package_xml): PRIVATE_INSTRUMENTATION := $(LOCAL_INSTRUMENTATION_FOR) +$(afw_test_package_xml): PRIVATE_PACKAGE := $(LOCAL_PACKAGE_NAME) +$(afw_test_package_xml): PRIVATE_AFW_TEST_PACKAGE_NAME_ := com.android.afwtest.$(notdir $(LOCAL_PATH)) +$(afw_test_package_xml): PRIVATE_TEST_PACKAGE := $(PRIVATE_AFW_TEST_PACKAGE_NAME_) +$(afw_test_package_xml): PRIVATE_MANIFEST := $(LOCAL_PATH)/AndroidManifest.xml +$(afw_test_package_xml): PRIVATE_TEST_TYPE := '' +$(afw_test_package_xml): $(afw_test_support_apks) +$(afw_test_package_xml): $(afw_test_module_test_config) +$(afw_test_package_xml): $(CTS_JAVA_TEST_SCANNER_DOCLET) $(CTS_JAVA_TEST_SCANNER) $(CTS_XML_GENERATOR) + $(hide) echo Generating test description for java package $(PRIVATE_PACKAGE) + $(hide) mkdir -p $(AFW_TH_TESTCASES_OUT) + $(hide) $(CTS_JAVA_TEST_SCANNER) \ + $(PRIVATE_SRC_DIRS) \ + -d $(CTS_JAVA_TEST_SCANNER_DOCLET) | \ + $(CTS_XML_GENERATOR) \ + -t $(PRIVATE_TEST_TYPE) \ + -m $(PRIVATE_MANIFEST) \ + -i "$(PRIVATE_INSTRUMENTATION)" \ + -n $(PRIVATE_PACKAGE) \ + -p $(PRIVATE_TEST_PACKAGE) \ + -e $(CTS_EXPECTATIONS) \ + -b $(CTS_UNSUPPORTED_ABIS) \ + -a $(CTS_TARGET_ARCH) \ + -o $@ + +$(my_register_name) : $(afw_test_package_xml) $(afw_test_module_test_config) diff --git a/tests/NfcProvisioning/Android.mk b/tests/NfcProvisioning/Android.mk index 65e6de9..7f50c60 100644 --- a/tests/NfcProvisioning/Android.mk +++ b/tests/NfcProvisioning/Android.mk @@ -30,4 +30,4 @@ LOCAL_AFW_TEST_MODULE_CONFIG := $(LOCAL_PATH)/$(AFW_TEST_MODULE_TEST_CONFIG) LOCAL_SDK_VERSION := 22 -include $(BUILD_AFW_TH_TEST_PACKAGE) +include $(BUILD_AFW_TEST_PACKAGE) diff --git a/tests/NonSuwPoProvisioning/Android.mk b/tests/NonSuwPoProvisioning/Android.mk index 9077a90..7ca56b3 100644 --- a/tests/NonSuwPoProvisioning/Android.mk +++ b/tests/NonSuwPoProvisioning/Android.mk @@ -30,4 +30,4 @@ LOCAL_SDK_VERSION := 22 LOCAL_AFW_TEST_MODULE_CONFIG := $(LOCAL_PATH)/$(AFW_TEST_MODULE_TEST_CONFIG) -include $(BUILD_AFW_TH_TEST_PACKAGE) +include $(BUILD_AFW_TEST_PACKAGE) diff --git a/tests/SuwDoProvisioning/Android.mk b/tests/SuwDoProvisioning/Android.mk index 9d4bccb..0248c5a 100644 --- a/tests/SuwDoProvisioning/Android.mk +++ b/tests/SuwDoProvisioning/Android.mk @@ -30,4 +30,4 @@ LOCAL_SDK_VERSION := 22 LOCAL_AFW_TEST_MODULE_CONFIG := $(LOCAL_PATH)/$(AFW_TEST_MODULE_TEST_CONFIG) -include $(BUILD_AFW_TH_TEST_PACKAGE) +include $(BUILD_AFW_TEST_PACKAGE) diff --git a/tests/SuwPoProvisioning/Android.mk b/tests/SuwPoProvisioning/Android.mk index 5bd5be7..aa76ff1 100644 --- a/tests/SuwPoProvisioning/Android.mk +++ b/tests/SuwPoProvisioning/Android.mk @@ -30,4 +30,4 @@ LOCAL_SDK_VERSION := 22 LOCAL_AFW_TEST_MODULE_CONFIG := $(LOCAL_PATH)/$(AFW_TEST_MODULE_TEST_CONFIG) -include $(BUILD_AFW_TH_TEST_PACKAGE) +include $(BUILD_AFW_TEST_PACKAGE) diff --git a/tests/TestPlanDef.xml b/tests/TestPlanDef.xml index d064d1f..b4bc3c9 100644 --- a/tests/TestPlanDef.xml +++ b/tests/TestPlanDef.xml @@ -18,7 +18,6 @@ <plan name="afw-userdebug-build"> <package name="AfwTestNfcProvisioningTestCases"/> <package name="AfwTestSuwDoProvisioningTestCases"/> - <package name="AfwTestSuwPoProvisioningTestCases"/> </plan> <!-- For user build--> diff --git a/tools/tradefed-host/etc/afw-test-tradefed b/tools/tradefed-host/etc/afw-test-tradefed index c04c875..6f9af69 100755 --- a/tools/tradefed-host/etc/afw-test-tradefed +++ b/tools/tradefed-host/etc/afw-test-tradefed @@ -16,7 +16,8 @@ # # launcher script for afw-test-tradefed harness -# Can be used from an Android build environment, or a standalone android-afw-test zip +# Can be used from an Android build environment, or a standalone +# android-afw-test-harness zip checkFile() { if [ ! -f "$1" ]; then |