summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Muramatsu <btmura@google.com>2011-12-12 23:54:49 -0800
committerBrian Muramatsu <btmura@google.com>2011-12-13 14:14:36 -0800
commit237fa073392127a7ba1cfff1b2010191a5343e1f (patch)
tree2d6cc140ce9b6487b608d10a7b95d4e78643f923
parent917895384fb7c9fb9ca858fdf792ec165e151de9 (diff)
downloadbuild-237fa073392127a7ba1cfff1b2010191a5343e1f.zip
build-237fa073392127a7ba1cfff1b2010191a5343e1f.tar.gz
build-237fa073392127a7ba1cfff1b2010191a5343e1f.tar.bz2
Build Support for CTS Native Tests
Bug 4970300 Adds two new variables, CTS_TEST_CASES and CTS_TEST_XMLS, to be read from CtsTestCaseList.mk. The CTS_TEST_CASES variable can be used to copy any sort of file to the repository/testcases CTS directory. The CTS_TEST_XMLS variable can be used to inject test package xmls from any source rather than relying upon the monolithic and mostly serial buildCts.py script. The existing CTS_CORE_CASE_LIST is coded to only support APKs, so it could not be retrofitted to support native tests. However, the two new variables can do even more than CTS_CORE_CASE_LIST due to their generality. In the future, the idea is move away from CTS_CORE_CASE_LIST and also generate XMLs using separate tools rather than just buildCts.py. Change-Id: Ib52722861c37e0f4d511f9041928395bcaba5dea
-rw-r--r--core/clear_vars.mk1
-rw-r--r--core/tasks/cts.mk17
2 files changed, 14 insertions, 4 deletions
diff --git a/core/clear_vars.mk b/core/clear_vars.mk
index d9f3372..66e6232 100644
--- a/core/clear_vars.mk
+++ b/core/clear_vars.mk
@@ -114,6 +114,7 @@ LOCAL_PROTOC_OPTIMIZE_TYPE:= # lite(default),micro,full
LOCAL_PROTOC_FLAGS:=
LOCAL_NO_CRT:=
LOCAL_PROPRIETARY_MODULE:=
+LOCAL_CTS_TEST_PACKAGE:=
# Trim MAKEFILE_LIST so that $(call my-dir) doesn't need to
# iterate over thousands of entries every time.
diff --git a/core/tasks/cts.mk b/core/tasks/cts.mk
index fcdd987..45dcd0f 100644
--- a/core/tasks/cts.mk
+++ b/core/tasks/cts.mk
@@ -42,7 +42,7 @@ DEFAULT_TEST_PLAN := $(cts_dir)/$(cts_name)/resource/plans
$(cts_dir)/all_cts_files_stamp: PRIVATE_JUNIT_HOST_JAR := $(junit_host_jar)
-include cts/CtsHostLibraryList.mk
-$(cts_dir)/all_cts_files_stamp: $(CTS_CASE_LIST) $(junit_host_jar) $(HOSTTESTLIB_JAR) $(CTS_HOST_LIBRARY_JARS) $(TF_JAR) $(CTS_TF_JAR) $(CTS_TF_EXEC_PATH) $(CTS_TF_README_PATH) $(ACP)
+$(cts_dir)/all_cts_files_stamp: $(CTS_CASE_LIST) $(CTS_TEST_CASES) $(junit_host_jar) $(HOSTTESTLIB_JAR) $(CTS_HOST_LIBRARY_JARS) $(TF_JAR) $(CTS_TF_JAR) $(CTS_TF_EXEC_PATH) $(CTS_TF_README_PATH) $(ACP)
# Make necessary directory for CTS
$(hide) rm -rf $(PRIVATE_CTS_DIR)
$(hide) mkdir -p $(TMP_DIR)
@@ -53,8 +53,8 @@ $(cts_dir)/all_cts_files_stamp: $(CTS_CASE_LIST) $(junit_host_jar) $(HOSTTESTLIB
# Copy executable and JARs to CTS directory
$(hide) $(ACP) -fp $(DDMLIB_JAR) $(PRIVATE_JUNIT_HOST_JAR) $(HOSTTESTLIB_JAR) $(CTS_HOST_LIBRARY_JARS) $(TF_JAR) $(CTS_TF_JAR) $(CTS_TF_EXEC_PATH) $(CTS_TF_README_PATH) $(PRIVATE_DIR)/tools
# Change mode of the executables
- $(foreach apk,$(CTS_CASE_LIST), \
- $(call copy-testcase-apk,$(apk)))
+ $(foreach apk,$(CTS_CASE_LIST),$(call copy-testcase-apk,$(apk)))
+ $(foreach testcase,$(CTS_TEST_CASES),$(call copy-testcase,$(testcase)))
$(hide) touch $@
# Generate the test descriptions for the core-tests
@@ -165,9 +165,12 @@ APP_SECURITY_LIB := $(cts_dir)/$(cts_name)/repository/testcases/CtsAppSecurityTe
$(APP_SECURITY_LIB): $(HOST_OUT_JAVA_LIBRARIES)/CtsAppSecurityTests.jar $(cts_dir)/all_cts_files_stamp $(ACP)
$(ACP) -fv $(HOST_OUT_JAVA_LIBRARIES)/CtsAppSecurityTests.jar $(APP_SECURITY_LIB)
+
# Generate the default test plan for User.
# Usage: buildCts.py <testRoot> <ctsOutputDir> <tempDir> <androidRootDir> <docletPath>
-$(DEFAULT_TEST_PLAN): $(cts_dir)/all_cts_files_stamp $(cts_dir)/all_cts_core_files_stamp $(cts_tools_src_dir)/utils/buildCts.py $(CORE_VM_TEST_TF_DESC) $(CORE_VM_TEST_DESC) $(APP_SECURITY_LIB) $(HOST_OUT_JAVA_LIBRARIES)/descGen.jar
+
+$(DEFAULT_TEST_PLAN): $(cts_dir)/all_cts_files_stamp $(cts_dir)/all_cts_core_files_stamp $(cts_tools_src_dir)/utils/buildCts.py $(CORE_VM_TEST_TF_DESC) $(CORE_VM_TEST_DESC) $(APP_SECURITY_LIB) $(HOST_OUT_JAVA_LIBRARIES)/descGen.jar $(CTS_TEST_XMLS) | $(ACP)
+ $(hide) $(ACP) -fp $(CTS_TEST_XMLS) $(PRIVATE_DIR)/repository/testcases
$(hide) $(cts_tools_src_dir)/utils/buildCts.py cts/tests/tests/ $(PRIVATE_DIR) $(TMP_DIR) \
$(TOP) $(HOST_OUT_JAVA_LIBRARIES)/descGen.jar
@@ -194,3 +197,9 @@ $(hide) $(ACP) -fp $(call intermediates-dir-for,APPS,$(1))/package.apk \
$(PRIVATE_DIR)/repository/testcases/$(1).apk
endef
+
+define copy-testcase
+
+$(hide) $(ACP) -fp $(1) $(PRIVATE_DIR)/repository/testcases/$(notdir $1)
+
+endef