From 8a431d9c7d48d53b1a4083d1e4f211931dd2054f Mon Sep 17 00:00:00 2001 From: Simran Basi Date: Tue, 4 Apr 2017 12:47:19 -0700 Subject: [PATCH] Common testcase directories: Clean up duplicates This CL addresses the problem that native tests build for multiple architectures and also build for host. First it restructures each testcase folder to the following layout: /.config //testcase //testcase Secondly it now uses the new soong-zip prefix capability to separate out host and target testcases in the device-tests & general-tests zip files. Bug:36692141 Test: `make device-tests general-tests cts -j` & ensured all built successfully. Change-Id: I4e8b084ee56fa8940914911649ff35507d87eb27 --- core/base_rules.mk | 20 +++++++++++++++++++- core/definitions.mk | 5 +++-- core/tasks/device-tests.mk | 2 +- core/tasks/general-tests.mk | 2 +- 4 files changed, 24 insertions(+), 5 deletions(-) diff --git a/core/base_rules.mk b/core/base_rules.mk index 92e69bb91d..ff6f5bdcfc 100644 --- a/core/base_rules.mk +++ b/core/base_rules.mk @@ -431,9 +431,27 @@ endif ########################################################### ifdef LOCAL_COMPATIBILITY_SUITE +# If we are building a native test or benchmark and its stem variants are not defined, +# separate the multiple architectures into subdirectories of the testcase folder. +arch_dir := +is_native := +ifeq ($(LOCAL_MODULE_CLASS),NATIVE_TESTS) + is_native := true +endif +ifeq ($(LOCAL_MODULE_CLASS),NATIVE_BENCHMARK) + is_native := true +endif +ifdef LOCAL_MULTILIB + is_native := true +endif +ifdef is_native + arch_dir := /$($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH) + is_native := +endif + # The module itself. $(foreach suite, $(LOCAL_COMPATIBILITY_SUITE), \ - $(eval my_compat_dist_$(suite) := $(foreach dir, $(call compatibility_suite_dirs,$(suite)), \ + $(eval my_compat_dist_$(suite) := $(foreach dir, $(call compatibility_suite_dirs,$(suite),$(arch_dir)), \ $(LOCAL_BUILT_MODULE):$(dir)/$(my_installed_module_stem)))) # Make sure we only add the files once for multilib modules. diff --git a/core/definitions.mk b/core/definitions.mk index 07a89488c3..d1a63319d0 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -3243,11 +3243,12 @@ endef ## Compatibility suite tools ########################################################### -# Return a list of output directories for a given suite and the current LOCAL_MODULE +# Return a list of output directories for a given suite and the current LOCAL_MODULE. +# Can be passed a subdirectory to use for the common testcase directory. define compatibility_suite_dirs $(strip \ $(COMPATIBILITY_TESTCASES_OUT_$(1)) \ - $($(my_prefix)OUT_TESTCASES)/$(LOCAL_MODULE)) + $($(my_prefix)OUT_TESTCASES)/$(LOCAL_MODULE)$(2)) endef # For each suite: diff --git a/core/tasks/device-tests.mk b/core/tasks/device-tests.mk index 731937f2b7..299e160281 100644 --- a/core/tasks/device-tests.mk +++ b/core/tasks/device-tests.mk @@ -21,7 +21,7 @@ $(device-tests-zip): $(COMPATIBILITY.device-tests.FILES) $(SOONG_ZIP) sed -i -e 's/\s\+/\n/g' $@.list grep $(HOST_OUT_TESTCASES) $@.list > $@-host.list || true grep $(TARGET_OUT_TESTCASES) $@.list > $@-target.list || true - $(hide) $(SOONG_ZIP) -d -o $@ -C $(HOST_OUT) -l $@-host.list -C $(PRODUCT_OUT) -l $@-target.list + $(hide) $(SOONG_ZIP) -d -o $@ -P host -C $(HOST_OUT) -l $@-host.list -P target -C $(PRODUCT_OUT) -l $@-target.list device-tests: $(device-tests-zip) $(call dist-for-goals, device-tests, $(device-tests-zip)) diff --git a/core/tasks/general-tests.mk b/core/tasks/general-tests.mk index e02faa739c..9629bfa89c 100644 --- a/core/tasks/general-tests.mk +++ b/core/tasks/general-tests.mk @@ -20,7 +20,7 @@ $(general-tests-zip): $(COMPATIBILITY.general-tests.FILES) $(SOONG_ZIP) sed -i -e 's/\s\+/\n/g' $@.list grep $(HOST_OUT_TESTCASES) $@.list > $@-host.list || true grep $(TARGET_OUT_TESTCASES) $@.list > $@-target.list || true - $(hide) $(SOONG_ZIP) -d -o $@ -C $(HOST_OUT) -l $@-host.list -C $(PRODUCT_OUT) -l $@-target.list + $(hide) $(SOONG_ZIP) -d -o $@ -P host -C $(HOST_OUT) -l $@-host.list -P target -C $(PRODUCT_OUT) -l $@-target.list general-tests: $(general-tests-zip) $(call dist-for-goals, general-tests, $(general-tests-zip))