From 27c29368b84b8c0aacad3fbcde56a190810ca8dc Mon Sep 17 00:00:00 2001 From: Simran Basi Date: Wed, 25 Jan 2017 15:11:55 -0800 Subject: [PATCH 1/3] Output *TS testcases to common testcase folders. Aggregates the different *TS testcases into two common folders, one under each the host and product hierarchies. Bug: 34715822 Test: `make cts -j` and checked the contents of both: out/host/linux-x86/testcases/ & out/host/linux-x86/cts/android-cts/testcases/ Change-Id: I7d5201998ddcb011ecc687c272a0d0a36da248b7 (cherry picked from commit adf63b777a9b7ef1f223f01f3686ed7eb6b48119) Merged-In: I7d5201998ddcb011ecc687c272a0d0a36da248b7 --- core/base_rules.mk | 12 +++++++++--- core/envsetup.mk | 7 +++++++ core/package_internal.mk | 7 +++++-- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/core/base_rules.mk b/core/base_rules.mk index 6722af4f2..259d03e6b 100644 --- a/core/base_rules.mk +++ b/core/base_rules.mk @@ -377,7 +377,8 @@ endif # The module itself. my_compat_dist := \ - $(LOCAL_BUILT_MODULE):$(COMPATIBILITY_TESTCASES_OUT_$(LOCAL_COMPATIBILITY_SUITE))/$(my_installed_module_stem) + $(LOCAL_BUILT_MODULE):$(COMPATIBILITY_TESTCASES_OUT_$(LOCAL_COMPATIBILITY_SUITE))/$(my_installed_module_stem) \ + $(LOCAL_BUILT_MODULE):$($(my_prefix)OUT_TESTCASES)/$(my_installed_module_stem) # Make sure we only add the files once for multilib modules. ifndef $(my_prefix)$(LOCAL_MODULE_CLASS)_$(LOCAL_MODULE)_compat_files @@ -387,17 +388,22 @@ $(my_prefix)$(LOCAL_MODULE_CLASS)_$(LOCAL_MODULE)_compat_files := true my_compat_dist += $(foreach f, $(LOCAL_COMPATIBILITY_SUPPORT_FILES),\ $(eval p := $(subst :,$(space),$(f)))\ $(eval s := $(word 1,$(p)))\ - $(eval d := $(COMPATIBILITY_TESTCASES_OUT_$(LOCAL_COMPATIBILITY_SUITE))/$(or $(word 2,$(p)),$(notdir $(word 1,$(p)))))\ - $(s):$(d)) + $(eval n := $(or $(word 2,$(p)),$(notdir $(word 1, $(p))))) \ + $(eval d := $(COMPATIBILITY_TESTCASES_OUT_$(LOCAL_COMPATIBILITY_SUITE))/$(n)) \ + $(s):$(d) $(s):$($(my_prefix)OUT_TESTCASES)/$(n)) ifneq (,$(wildcard $(LOCAL_PATH)/AndroidTest.xml)) my_compat_dist += \ $(LOCAL_PATH)/AndroidTest.xml:$(COMPATIBILITY_TESTCASES_OUT_$(LOCAL_COMPATIBILITY_SUITE))/$(LOCAL_MODULE).config +my_compat_dist += \ + $(LOCAL_PATH)/AndroidTest.xml:$($(my_prefix)OUT_TESTCASES)/$(LOCAL_MODULE).config endif ifneq (,$(wildcard $(LOCAL_PATH)/DynamicConfig.xml)) my_compat_dist += \ $(LOCAL_PATH)/DynamicConfig.xml:$(COMPATIBILITY_TESTCASES_OUT_$(LOCAL_COMPATIBILITY_SUITE))/$(LOCAL_MODULE).dynamic +my_compat_dist += \ + $(LOCAL_PATH)/DynamicConfig.xml:$($(my_prefix)OUT_TESTCASES)/$(LOCAL_MODULE).dynamic endif endif # $(my_prefix)$(LOCAL_MODULE_CLASS)_$(LOCAL_MODULE)_compat_files diff --git a/core/envsetup.mk b/core/envsetup.mk index 0a7260337..419a6c6c6 100644 --- a/core/envsetup.mk +++ b/core/envsetup.mk @@ -245,6 +245,9 @@ HOST_OUT_SDK_ADDON := $(HOST_OUT)/sdk_addon HOST_CROSS_OUT_EXECUTABLES := $(HOST_CROSS_OUT)/bin HOST_CROSS_OUT_SHARED_LIBRARIES := $(HOST_CROSS_OUT)/lib +HOST_CROSS_OUT_NATIVE_TESTS := $(HOST_CROSS_OUT)/nativetest +HOST_CROSS_OUT_COVERAGE := $(HOST_CROSS_OUT)/coverage +HOST_OUT_TESTCASES := $(HOST_OUT)/testcases HOST_OUT_INTERMEDIATES := $(HOST_OUT)/obj HOST_OUT_HEADERS := $(HOST_OUT_INTERMEDIATES)/include @@ -271,6 +274,8 @@ $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_INTERMEDIATE_LIBRARIES := $($(HOST_2ND_ARCH_ $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_SHARED_LIBRARIES := $(HOST_OUT)/lib $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_EXECUTABLES := $(HOST_OUT_EXECUTABLES) $(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_JAVA_LIBRARIES := $(HOST_OUT_JAVA_LIBRARIES) +$(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_NATIVE_TESTS := $(HOST_OUT)/nativetest +$(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_TESTCASES := $(HOST_OUT_TESTCASES) # The default host library path. # It always points to the path where we build libraries in the default bitness. @@ -321,6 +326,7 @@ TARGET_OUT_KEYCHARS := $(TARGET_OUT)/usr/keychars TARGET_OUT_ETC := $(TARGET_OUT)/etc TARGET_OUT_NOTICE_FILES := $(TARGET_OUT_INTERMEDIATES)/NOTICE_FILES TARGET_OUT_FAKE := $(PRODUCT_OUT)/fake_packages +TARGET_OUT_TESTCASES := $(PRODUCT_OUT)/testcases # Out for TARGET_2ND_ARCH TARGET_2ND_ARCH_VAR_PREFIX := $(HOST_2ND_ARCH_VAR_PREFIX) @@ -332,6 +338,7 @@ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_RENDERSCRIPT_BITCODE := $($(TARGET_2ND_A $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_EXECUTABLES := $(TARGET_OUT_EXECUTABLES) $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_APPS := $(TARGET_OUT_APPS) $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_APPS_PRIVILEGED := $(TARGET_OUT_APPS_PRIVILEGED) +$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_TESTCASES := $(TARGET_OUT_TESTCASES) TARGET_OUT_DATA := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_DATA) TARGET_OUT_DATA_EXECUTABLES := $(TARGET_OUT_EXECUTABLES) diff --git a/core/package_internal.mk b/core/package_internal.mk index 551f18e57..0852b27b4 100644 --- a/core/package_internal.mk +++ b/core/package_internal.mk @@ -639,12 +639,15 @@ ifdef LOCAL_COMPATIBILITY_SUITE cts_testcase_file := $(foreach s,$(my_split_suffixes),$(COMPATIBILITY_TESTCASES_OUT_$(LOCAL_COMPATIBILITY_SUITE))/$(LOCAL_MODULE)_$(s).apk) $(cts_testcase_file) : $(COMPATIBILITY_TESTCASES_OUT_$(LOCAL_COMPATIBILITY_SUITE))/$(LOCAL_MODULE)_%.apk : $(built_module_path)/package_%.apk | $(ACP) $(copy-file-to-new-target) +common_testcase_file := $(foreach s,$(my_split_suffixes),$($(my_prefix)OUT_TESTCASES)/$(LOCAL_MODULE)_$(s).apk) +$(common_testcase_file) : $($(my_prefix)OUT_TESTCASES)/$(LOCAL_MODULE)_%.apk : $(built_module_path)/package_%.apk + $(copy-file-to-new-target) COMPATIBILITY.$(LOCAL_COMPATIBILITY_SUITE).FILES := \ $(COMPATIBILITY.$(LOCAL_COMPATIBILITY_SUITE).FILES) \ - $(cts_testcase_file) + $(cts_testcase_file) $(common_testcase_file) -$(my_register_name) : $(cts_testcase_file) +$(my_register_name) : $(cts_testcase_file) $(common_testcase_file) endif # LOCAL_COMPATIBILITY_SUITE endif # LOCAL_PACKAGE_SPLITS From d234819842d491ccb4cf0c1301847d34189528b2 Mon Sep 17 00:00:00 2001 From: Simran Basi Date: Wed, 8 Feb 2017 15:53:32 -0800 Subject: [PATCH 2/3] Output *TS testcases to their own subdir in the common testcase folders. Instead of dumping all *TS testcases into the common testcase directory directly, place them all in their own subdirectory. Bug: 35153177 Test: `make cts -j` and checked the contents of both: out/host/linux-x86/testcases/ & out/host/linux-x86/cts/android-cts/testcases/ Change-Id: I22a768dba58d40be1e61885534fb813e7ff08c99 (cherry picked from commit 3fb354cca08ec30cb6aade8da3f4b5ddd119b227) Merged-In: I22a768dba58d40be1e61885534fb813e7ff08c99 --- core/base_rules.mk | 11 +++++++---- core/package_internal.mk | 4 ++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/core/base_rules.mk b/core/base_rules.mk index 259d03e6b..172ca6023 100644 --- a/core/base_rules.mk +++ b/core/base_rules.mk @@ -375,10 +375,13 @@ ifneq ($(words $(LOCAL_COMPATIBILITY_SUITE)),1) $(error $(LOCAL_PATH):$(LOCAL_MODULE) LOCAL_COMPATIBILITY_SUITE can be only one name) endif +# Copy this module into its own subdirectory in the common testcases output directory. +my_testcases_subdir := $($(my_prefix)OUT_TESTCASES)/$(LOCAL_MODULE) + # The module itself. my_compat_dist := \ $(LOCAL_BUILT_MODULE):$(COMPATIBILITY_TESTCASES_OUT_$(LOCAL_COMPATIBILITY_SUITE))/$(my_installed_module_stem) \ - $(LOCAL_BUILT_MODULE):$($(my_prefix)OUT_TESTCASES)/$(my_installed_module_stem) + $(LOCAL_BUILT_MODULE):$(my_testcases_subdir)/$(my_installed_module_stem) # Make sure we only add the files once for multilib modules. ifndef $(my_prefix)$(LOCAL_MODULE_CLASS)_$(LOCAL_MODULE)_compat_files @@ -390,20 +393,20 @@ my_compat_dist += $(foreach f, $(LOCAL_COMPATIBILITY_SUPPORT_FILES),\ $(eval s := $(word 1,$(p)))\ $(eval n := $(or $(word 2,$(p)),$(notdir $(word 1, $(p))))) \ $(eval d := $(COMPATIBILITY_TESTCASES_OUT_$(LOCAL_COMPATIBILITY_SUITE))/$(n)) \ - $(s):$(d) $(s):$($(my_prefix)OUT_TESTCASES)/$(n)) + $(s):$(d) $(s):$(my_testcases_subdir)/$(n)) ifneq (,$(wildcard $(LOCAL_PATH)/AndroidTest.xml)) my_compat_dist += \ $(LOCAL_PATH)/AndroidTest.xml:$(COMPATIBILITY_TESTCASES_OUT_$(LOCAL_COMPATIBILITY_SUITE))/$(LOCAL_MODULE).config my_compat_dist += \ - $(LOCAL_PATH)/AndroidTest.xml:$($(my_prefix)OUT_TESTCASES)/$(LOCAL_MODULE).config + $(LOCAL_PATH)/AndroidTest.xml:$(my_testcases_subdir)/$(LOCAL_MODULE).config endif ifneq (,$(wildcard $(LOCAL_PATH)/DynamicConfig.xml)) my_compat_dist += \ $(LOCAL_PATH)/DynamicConfig.xml:$(COMPATIBILITY_TESTCASES_OUT_$(LOCAL_COMPATIBILITY_SUITE))/$(LOCAL_MODULE).dynamic my_compat_dist += \ - $(LOCAL_PATH)/DynamicConfig.xml:$($(my_prefix)OUT_TESTCASES)/$(LOCAL_MODULE).dynamic + $(LOCAL_PATH)/DynamicConfig.xml:$(my_testcases_subdir)/$(LOCAL_MODULE).dynamic endif endif # $(my_prefix)$(LOCAL_MODULE_CLASS)_$(LOCAL_MODULE)_compat_files diff --git a/core/package_internal.mk b/core/package_internal.mk index 0852b27b4..0a7f37192 100644 --- a/core/package_internal.mk +++ b/core/package_internal.mk @@ -639,8 +639,8 @@ ifdef LOCAL_COMPATIBILITY_SUITE cts_testcase_file := $(foreach s,$(my_split_suffixes),$(COMPATIBILITY_TESTCASES_OUT_$(LOCAL_COMPATIBILITY_SUITE))/$(LOCAL_MODULE)_$(s).apk) $(cts_testcase_file) : $(COMPATIBILITY_TESTCASES_OUT_$(LOCAL_COMPATIBILITY_SUITE))/$(LOCAL_MODULE)_%.apk : $(built_module_path)/package_%.apk | $(ACP) $(copy-file-to-new-target) -common_testcase_file := $(foreach s,$(my_split_suffixes),$($(my_prefix)OUT_TESTCASES)/$(LOCAL_MODULE)_$(s).apk) -$(common_testcase_file) : $($(my_prefix)OUT_TESTCASES)/$(LOCAL_MODULE)_%.apk : $(built_module_path)/package_%.apk +common_testcase_file := $(foreach s,$(my_split_suffixes),$($(my_prefix)OUT_TESTCASES)/$(LOCAL_MODULE)/$(LOCAL_MODULE)_$(s).apk) +$(common_testcase_file) : $($(my_prefix)OUT_TESTCASES)/$(LOCAL_MODULE)/$(LOCAL_MODULE)_%.apk : $(built_module_path)/package_%.apk $(copy-file-to-new-target) COMPATIBILITY.$(LOCAL_COMPATIBILITY_SUITE).FILES := \ From e4f77886611d1b4f8b5018dc6d4cc027da0a77a6 Mon Sep 17 00:00:00 2001 From: Simran Basi Date: Fri, 10 Feb 2017 15:40:43 -0800 Subject: [PATCH 3/3] Update CleanSpec.mk for the common testcase directories. Fix an issue with incremental builds and the new common testcase directories. Bug: 67456333 Test: Removed https://android-review.googlesource.com/#/c/234478/ then ran `m cts-platform-version-check` then reapplied the change to verify the failure. Then applied this new change to verify the problem was resolved. Change-Id: I77529021e852af35571fb99537d87100010b47af (cherry picked from commit 7fe57cfdcdc086871300d37cf6e80bc94f85b5ee) Merged-In: I77529021e852af35571fb99537d87100010b47af --- CleanSpec.mk | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CleanSpec.mk b/CleanSpec.mk index 3c8d6ceb9..b31147057 100644 --- a/CleanSpec.mk +++ b/CleanSpec.mk @@ -374,6 +374,9 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*) # $(PRODUCT_OUT)/recovery/root/sdcard goes from symlink to folder. $(call add-clean-step, rm -rf $(PRODUCT_OUT)/recovery/root/sdcard) +$(call add-clean-step, rm -rf $(HOST_OUT_TESTCASES)) +$(call add-clean-step, rm -rf $(TARGET_OUT_TESTCASES)) + # ************************************************ # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST # ************************************************