diff --git a/core/base_rules.mk b/core/base_rules.mk index 7147f6df6..3c973bb46 100644 --- a/core/base_rules.mk +++ b/core/base_rules.mk @@ -716,6 +716,18 @@ ifneq (,$(filter $(SOONG_OUT_DIR)%,$(LOCAL_FULL_TEST_CONFIG))) endif endif + +ifeq ($(use_testcase_folder),true) +ifneq ($(my_test_data_file_pairs),) +$(foreach pair, $(my_test_data_file_pairs), \ + $(eval parts := $(subst :,$(space),$(pair))) \ + $(eval src_path := $(word 1,$(parts))) \ + $(eval file := $(word 2,$(parts))) \ + $(foreach suite, $(LOCAL_COMPATIBILITY_SUITE), \ + $(eval my_compat_dist_$(suite) += $(foreach dir, $(call compatibility_suite_dirs,$(suite),$(arch_dir)), \ + $(call filter-copy-pair,$(src_path),$(call append-path,$(dir),$(file)),$(my_installed_test_data)))))) +endif +else ifneq ($(my_test_data_file_pairs),) $(foreach pair, $(my_test_data_file_pairs), \ $(eval parts := $(subst :,$(space),$(pair))) \ @@ -725,6 +737,7 @@ $(foreach pair, $(my_test_data_file_pairs), \ $(eval my_compat_dist_$(suite) += $(foreach dir, $(call compatibility_suite_dirs,$(suite),$(arch_dir)), \ $(src_path):$(call append-path,$(dir),$(file)))))) endif +endif diff --git a/core/definitions.mk b/core/definitions.mk index 381a2a70b..a442bc0e0 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -2419,6 +2419,16 @@ define compat-copy-pair $(if $(filter-out $(2), $(LOCAL_INSTALLED_MODULE)), $(1):$(2)) endef +# Create copy pair for $(1) $(2) +# If $(2) is substring of $(3) do nothing. +# $(1): source path +# $(2): destination path +# $(3): filter-out target +# The format of copy pair is src:dst +define filter-copy-pair +$(if $(findstring $(2), $(3)),,$(1):$(2)) +endef + # Copies many files. # $(1): The files to copy. Each entry is a ':' separated src:dst pair # $(2): An optional directory to prepend to the destination