Revert "Revert "Build System: Solve dependency problem for test""
This reverts commit 6fe7f194b9
.
Reason for revert: Fixed all build break.
Change-Id: I0a4842df1225399752515a4cd7a7c14173a5bf7b
This commit is contained in:
parent
6fe7f194b9
commit
1f8357fe7d
9 changed files with 146 additions and 18 deletions
|
@ -603,6 +603,13 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib*/libnpt.so)
|
|||
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib*)
|
||||
|
||||
# Clean up old testcase files
|
||||
$(call add-clean-step, rm -rf $(TARGET_OUT_TESTCASES)/*)
|
||||
$(call add-clean-step, rm -rf $(HOST_OUT_TESTCASES)/*)
|
||||
$(call add-clean-step, rm -rf $(HOST_CROSS_OUT_TESTCASES)/*)
|
||||
$(call add-clean-step, rm -rf $(TARGET_OUT_DATA)/*)
|
||||
$(call add-clean-step, rm -rf $(HOST_OUT)/vts/*)
|
||||
$(call add-clean-step, rm -rf $(HOST_OUT)/framework/vts-tradefed.jar)
|
||||
# ************************************************
|
||||
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
|
||||
# ************************************************
|
||||
|
|
|
@ -242,6 +242,33 @@ else
|
|||
partition_tag := $(if $(call should-install-to-system,$(my_module_tags)),,_DATA)
|
||||
endif
|
||||
endif
|
||||
# For test modules that lack a suite tag, set null-suite as the default.
|
||||
# We only support adding a default suite to native tests, native benchmarks, and instrumentation tests.
|
||||
# This is because they are the only tests we currently auto-generate test configs for.
|
||||
ifndef LOCAL_COMPATIBILITY_SUITE
|
||||
ifneq ($(filter NATIVE_TESTS NATIVE_BENCHMARK, $(LOCAL_MODULE_CLASS)),)
|
||||
LOCAL_COMPATIBILITY_SUITE := null-suite
|
||||
endif
|
||||
ifneq ($(filter APPS, $(LOCAL_MODULE_CLASS)),)
|
||||
ifneq ($(filter $(my_module_tags),tests),)
|
||||
LOCAL_COMPATIBILITY_SUITE := null-suite
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
use_testcase_folder :=
|
||||
ifdef ENABLE_DEFAULT_TEST_LOCATION
|
||||
ifeq ($(my_module_path),)
|
||||
ifneq ($(LOCAL_MODULE),$(filter $(LOCAL_MODULE),$(DEFAULT_DATA_OUT_MODULES)))
|
||||
ifdef LOCAL_COMPATIBILITY_SUITE
|
||||
ifneq (true, $(LOCAL_IS_HOST_MODULE))
|
||||
use_testcase_folder := true
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(my_module_path),)
|
||||
install_path_var := $(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)OUT$(partition_tag)_$(LOCAL_MODULE_CLASS)
|
||||
ifeq (true,$(LOCAL_PRIVILEGED_MODULE))
|
||||
|
@ -249,6 +276,16 @@ ifeq ($(my_module_path),)
|
|||
endif
|
||||
|
||||
my_module_path := $($(install_path_var))
|
||||
|
||||
# If use_testcase_folder be set, and LOCAL_MODULE_PATH not set,
|
||||
# overwrite the default path under testcase.
|
||||
ifeq ($(use_testcase_folder),true)
|
||||
arch_dir := $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)
|
||||
testcase_folder := $($(my_prefix)OUT_TESTCASES)/$(LOCAL_MODULE)/$(arch_dir)
|
||||
my_module_path := $(testcase_folder)
|
||||
arch_dir :=
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(my_module_path)),)
|
||||
$(error $(LOCAL_PATH): unhandled install path "$(install_path_var) for $(LOCAL_MODULE)")
|
||||
endif
|
||||
|
@ -324,7 +361,9 @@ ifneq (true,$(LOCAL_UNINSTALLABLE_MODULE))
|
|||
# Neither do Runtime Resource Overlay apks, which contain just the overlaid resources.
|
||||
else ifeq ($(LOCAL_IS_RUNTIME_RESOURCE_OVERLAY),true)
|
||||
else
|
||||
my_module_path := $(my_module_path)/$(LOCAL_MODULE)
|
||||
ifneq ($(use_testcase_folder),true)
|
||||
my_module_path := $(my_module_path)/$(LOCAL_MODULE)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
LOCAL_INSTALLED_MODULE := $(my_module_path)/$(my_installed_module_stem)
|
||||
|
@ -429,12 +468,23 @@ $(foreach c, $(my_path_components),\
|
|||
my_init_rc_installed :=
|
||||
my_init_rc_pairs :=
|
||||
my_installed_symlinks :=
|
||||
my_default_test_module :=
|
||||
ifeq ($(use_testcase_folder),true)
|
||||
arch_dir := $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)
|
||||
my_default_test_module := $($(my_prefix)OUT_TESTCASES)/$(LOCAL_MODULE)/$(arch_dir)/$(my_installed_module_stem)
|
||||
arch_dir :=
|
||||
endif
|
||||
|
||||
ifneq (true,$(LOCAL_UNINSTALLABLE_MODULE))
|
||||
ifneq ($(LOCAL_INSTALLED_MODULE),$(my_default_test_module))
|
||||
# Install into the testcase folder
|
||||
$(LOCAL_INSTALLED_MODULE) : $(my_default_test_module)
|
||||
$(LOCAL_INSTALLED_MODULE): PRIVATE_POST_INSTALL_CMD := $(LOCAL_POST_INSTALL_CMD)
|
||||
$(LOCAL_INSTALLED_MODULE): $(LOCAL_BUILT_MODULE)
|
||||
@echo "Install: $@"
|
||||
$(copy-file-to-new-target)
|
||||
$(PRIVATE_POST_INSTALL_CMD)
|
||||
endif
|
||||
|
||||
ifndef LOCAL_IS_HOST_MODULE
|
||||
# Rule to install the module's companion init.rc.
|
||||
|
@ -544,20 +594,6 @@ endif
|
|||
endif
|
||||
endif
|
||||
|
||||
# For test modules that lack a suite tag, set null-suite as the default.
|
||||
# We only support adding a default suite to native tests, native benchmarks, and instrumentation tests.
|
||||
# This is because they are the only tests we currently auto-generate test configs for.
|
||||
ifndef LOCAL_COMPATIBILITY_SUITE
|
||||
ifneq ($(filter NATIVE_TESTS NATIVE_BENCHMARK, $(LOCAL_MODULE_CLASS)),)
|
||||
LOCAL_COMPATIBILITY_SUITE := null-suite
|
||||
endif
|
||||
ifneq ($(filter APPS, $(LOCAL_MODULE_CLASS)),)
|
||||
ifneq ($(filter $(my_module_tags),tests),)
|
||||
LOCAL_COMPATIBILITY_SUITE := null-suite
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
###########################################################
|
||||
## Compatibility suite files.
|
||||
###########################################################
|
||||
|
@ -575,9 +611,15 @@ endif
|
|||
ifdef LOCAL_MULTILIB
|
||||
multi_arch := true
|
||||
endif
|
||||
|
||||
ifdef multi_arch
|
||||
arch_dir := /$($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)
|
||||
else
|
||||
ifeq ($(use_testcase_folder),true)
|
||||
arch_dir := /$($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)
|
||||
endif
|
||||
endif
|
||||
|
||||
multi_arch :=
|
||||
|
||||
# The module itself.
|
||||
|
@ -671,6 +713,17 @@ ifneq (,$(filter $(SOONG_OUT_DIR)%,$(LOCAL_FULL_TEST_CONFIG)))
|
|||
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))) \
|
||||
|
@ -680,6 +733,9 @@ $(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
|
||||
|
||||
|
||||
|
||||
arch_dir :=
|
||||
is_native :=
|
||||
|
|
|
@ -1174,4 +1174,12 @@ include $(BUILD_SYSTEM)/ninja_config.mk
|
|||
include $(BUILD_SYSTEM)/soong_config.mk
|
||||
endif
|
||||
|
||||
# If ENABLE_DEFAULT_TEST_LOCATION is true, move default install path from
|
||||
# $(my_prefix)OUT_DATA to $(my_prefix)OUT_TESTCASES
|
||||
ENABLE_DEFAULT_TEST_LOCATION := true
|
||||
-include external/linux-kselftest/android/kselftest_test_list.mk
|
||||
-include external/ltp/android/ltp_package_list.mk
|
||||
DEFAULT_DATA_OUT_MODULES := ltp $(ltp_packages) $(kselftest_modules)
|
||||
.KATI_READONLY := ENABLE_DEFAULT_TEST_LOCATION DEFAULT_DATA_OUT_MODULES
|
||||
|
||||
include $(BUILD_SYSTEM)/dumpvar.mk
|
||||
|
|
|
@ -2478,6 +2478,25 @@ $(2): $(1) $(ZIPALIGN) $(ZIP2ZIP)
|
|||
$$(align-package)
|
||||
endef
|
||||
|
||||
# Create copy pair for compatibility suite
|
||||
# Filter out $(LOCAL_INSTALLED_MODULE) to prevent overriding target
|
||||
# $(1): source path
|
||||
# $(2): destination path
|
||||
# The format of copy pair is src:dst
|
||||
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
|
||||
|
|
|
@ -523,6 +523,11 @@ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_TESTCASES := $(TARGET_OUT_TESTCASES)
|
|||
$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_APPS_PRIVILEGED \
|
||||
$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_TESTCASES
|
||||
|
||||
MODULE_CLASS_APPS := app
|
||||
MODULE_CLASS_EXECUTABLES := bin
|
||||
MODULE_CLASS_JAVA_LIBRARIES := framework
|
||||
MODULE_CLASS_NATIVE_TESTS := nativetest
|
||||
MODULE_CLASS_METRIC_TESTS := benchmarktest
|
||||
TARGET_OUT_DATA := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_DATA)
|
||||
TARGET_OUT_DATA_EXECUTABLES := $(TARGET_OUT_EXECUTABLES)
|
||||
TARGET_OUT_DATA_SHARED_LIBRARIES := $(TARGET_OUT_SHARED_LIBRARIES)
|
||||
|
@ -542,6 +547,7 @@ TARGET_OUT_DATA_METRIC_TESTS := $(TARGET_OUT_DATA)/benchmarktest
|
|||
TARGET_OUT_VENDOR_NATIVE_TESTS := $(TARGET_OUT_DATA)/nativetest$(TARGET_VENDOR_TEST_SUFFIX)
|
||||
TARGET_OUT_VENDOR_METRIC_TESTS := $(TARGET_OUT_DATA)/benchmarktest$(TARGET_VENDOR_TEST_SUFFIX)
|
||||
endif
|
||||
MODULE_CLASS_FAKE := fake_packages
|
||||
TARGET_OUT_DATA_FAKE := $(TARGET_OUT_DATA)/fake_packages
|
||||
.KATI_READONLY := \
|
||||
TARGET_OUT_DATA \
|
||||
|
@ -556,7 +562,13 @@ TARGET_OUT_DATA_FAKE := $(TARGET_OUT_DATA)/fake_packages
|
|||
TARGET_OUT_DATA_METRIC_TESTS \
|
||||
TARGET_OUT_VENDOR_NATIVE_TESTS \
|
||||
TARGET_OUT_VENDOR_METRIC_TESTS \
|
||||
TARGET_OUT_DATA_FAKE
|
||||
TARGET_OUT_DATA_FAKE \
|
||||
MODULE_CLASS_APPS \
|
||||
MODULE_CLASS_EXECUTABLES \
|
||||
MODULE_CLASS_JAVA_LIBRARIES \
|
||||
MODULE_CLASS_NATIVE_TESTS \
|
||||
MODULE_CLASS_METRIC_TESTS \
|
||||
MODULE_CLASS_FAKE
|
||||
|
||||
$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_EXECUTABLES := $(TARGET_OUT_DATA_EXECUTABLES)
|
||||
$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_SHARED_LIBRARIES := $($(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SHARED_LIBRARIES)
|
||||
|
|
|
@ -6,8 +6,10 @@ $(call record-module-type,NATIVE_BENCHMARK)
|
|||
|
||||
LOCAL_STATIC_LIBRARIES += libgoogle-benchmark
|
||||
|
||||
ifndef ENABLE_DEFAULT_TEST_LOCATION
|
||||
LOCAL_MODULE_PATH_64 := $(TARGET_OUT_DATA_METRIC_TESTS)/$(LOCAL_MODULE)
|
||||
LOCAL_MODULE_PATH_32 := $($(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_METRIC_TESTS)/$(LOCAL_MODULE)
|
||||
endif
|
||||
|
||||
ifndef LOCAL_MULTILIB
|
||||
ifndef LOCAL_32_BIT_ONLY
|
||||
|
|
|
@ -768,10 +768,17 @@ $(my_all_targets): $(installed_apk_splits)
|
|||
|
||||
ifdef LOCAL_COMPATIBILITY_SUITE
|
||||
|
||||
ifndef ENABLE_DEFAULT_TEST_LOCATION
|
||||
$(foreach suite, $(LOCAL_COMPATIBILITY_SUITE), \
|
||||
$(eval my_compat_dist_$(suite) := $(foreach dir, $(call compatibility_suite_dirs,$(suite)), \
|
||||
$(foreach s,$(my_split_suffixes),\
|
||||
$(intermediates)/package_$(s).apk:$(dir)/$(LOCAL_MODULE)_$(s).apk))))
|
||||
else
|
||||
$(foreach suite, $(LOCAL_COMPATIBILITY_SUITE), \
|
||||
$(eval my_compat_dist_$(suite) := $(foreach dir, $(call compatibility_suite_dirs,$(suite)), \
|
||||
$(foreach s,$(my_split_suffixes),\
|
||||
$(call compat-copy-pair,$(intermediates)/package_$(s).apk,$(dir)/$(LOCAL_MODULE)_$(s).apk)))))
|
||||
endif
|
||||
|
||||
$(call create-suite-dependencies)
|
||||
|
||||
|
|
|
@ -29,6 +29,15 @@ ifdef LOCAL_MODULE_PATH_64
|
|||
$(error $(LOCAL_PATH): Do not set LOCAL_MODULE_PATH_64 when building test $(LOCAL_MODULE))
|
||||
endif
|
||||
|
||||
use_testcase_folder := false
|
||||
ifdef ENABLE_DEFAULT_TEST_LOCATION
|
||||
ifneq ($(LOCAL_MODULE),$(filter $(LOCAL_MODULE),$(DEFAULT_DATA_OUT_MODULES)))
|
||||
use_testcase_folder := true
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(use_testcase_folder),true)
|
||||
ifndef LOCAL_MODULE_RELATIVE_PATH
|
||||
LOCAL_MODULE_RELATIVE_PATH := $(LOCAL_MODULE)
|
||||
endif
|
||||
endif
|
||||
|
|
|
@ -40,6 +40,8 @@ $(foreach m,$(my_modules_and_deps),\
|
|||
$(ALL_MODULES.$(m)$(TARGET_2ND_ARCH_MODULE_SUFFIX).PICKUP_FILES)))\
|
||||
$(eval _built_files := $(strip $(ALL_MODULES.$(m).BUILT_INSTALLED)\
|
||||
$(ALL_MODULES.$(m)$(TARGET_2ND_ARCH_MODULE_SUFFIX).BUILT_INSTALLED)))\
|
||||
$(eval _module_class_folder := $($(strip MODULE_CLASS_$(word 1, $(strip $(ALL_MODULES.$(m).CLASS)\
|
||||
$(ALL_MODULES.$(m)$(TARGET_2ND_ARCH_MODULE_SUFFIX).CLASS))))))\
|
||||
$(if $(_pickup_files)$(_built_files),,\
|
||||
$(call my_missing_files,$(m)))\
|
||||
$(eval my_pickup_files += $(_pickup_files))\
|
||||
|
@ -49,9 +51,15 @@ $(foreach m,$(my_modules_and_deps),\
|
|||
$(if $(filter $(TARGET_OUT_ROOT)/%,$(ins)),\
|
||||
$(eval bui := $(word 1,$(bui_ins)))\
|
||||
$(eval my_built_modules += $(bui))\
|
||||
$(if $(filter $(_module_class_folder), nativetest benchmarktest),\
|
||||
$(eval module_class_folder_stem := $(_module_class_folder)$(findstring 64, $(patsubst $(PRODUCT_OUT)/%,%,$(ins)))),\
|
||||
$(eval module_class_folder_stem := $(_module_class_folder)))\
|
||||
$(eval my_copy_dest := $(patsubst data/%,DATA/%,\
|
||||
$(patsubst system/%,DATA/%,\
|
||||
$(patsubst $(PRODUCT_OUT)/%,%,$(ins)))))\
|
||||
$(patsubst testcases/%,DATA/$(module_class_folder_stem)/%,\
|
||||
$(patsubst testcases/$(m)/$(TARGET_ARCH)/%,DATA/$(module_class_folder_stem)/$(m)/%,\
|
||||
$(patsubst testcases/$(m)/$(TARGET_2ND_ARCH)/%,DATA/$(module_class_folder_stem)/$(m)/%,\
|
||||
$(patsubst system/%,DATA/%,\
|
||||
$(patsubst $(PRODUCT_OUT)/%,%,$(ins))))))))\
|
||||
$(eval my_copy_pairs += $(bui):$(my_staging_dir)/$(my_copy_dest)))\
|
||||
))
|
||||
|
||||
|
|
Loading…
Reference in a new issue