Loading core/definitions.mk +5 −2 Original line number Diff line number Diff line Loading @@ -3007,14 +3007,17 @@ endef # 1. Copy the files to the many suite output directories. # And for test config files, we'll check the .xml is well-formed before copy. # 2. Add all the files to each suite's dependent files list. # 3. Do the dependency addition to my_all_targets # 3. Do the dependency addition to my_all_targets. # 4. Save the module name to COMPATIBILITY.$(suite).MODULES for each suite. # Requires for each suite: use my_compat_dist_config_$(suite) to define the test config. # and use my_compat_dist_$(suite) to define the others. define create-suite-dependencies $(foreach suite, $(LOCAL_COMPATIBILITY_SUITE), \ $(eval COMPATIBILITY.$(suite).FILES := \ $$(COMPATIBILITY.$(suite).FILES) $$(foreach f,$$(my_compat_dist_$(suite)),$$(call word-colon,2,$$(f))) \ $$(foreach f,$$(my_compat_dist_config_$(suite)),$$(call word-colon,2,$$(f))))) \ $$(foreach f,$$(my_compat_dist_config_$(suite)),$$(call word-colon,2,$$(f)))) \ $(eval COMPATIBILITY.$(suite).MODULES := \ $$(COMPATIBILITY.$(suite).MODULES) $$(my_register_name))) \ $(eval $(my_all_targets) : $(call copy-many-files, \ $(sort $(foreach suite,$(LOCAL_COMPATIBILITY_SUITE),$(my_compat_dist_$(suite))))) \ $(call copy-many-xml-files-checked, \ Loading core/main.mk +36 −0 Original line number Diff line number Diff line Loading @@ -725,11 +725,44 @@ $(foreach m,$($(if $(2),$($(1)2ND_ARCH_VAR_PREFIX))$(1)DEPENDENCIES_ON_SHARED_LI $(eval r := $(filter $($(root))/%,$(call module-installed-files,\ $(deps))))\ $(if $(filter $(1),HOST_),\ $(eval ALL_MODULES.$(mod).HOST_SHARED_LIBRARY_FILES := $$(ALL_MODULES.$(mod).HOST_SHARED_LIBRARY_FILES) $(word 2,$(p)) $(r))\ $(eval ALL_MODULES.$(mod).HOST_SHARED_LIBRARIES := $$(ALL_MODULES.$(mod).HOST_SHARED_LIBRARIES) $(deps))\ $(eval $(call add-required-host-so-deps,$(word 2,$(p)),$(r))),\ $(eval $(call add-required-deps,$(word 2,$(p)),$(r))))\ $(eval ALL_MODULES.$(mod).REQUIRED += $(deps))) endef # Recursively resolve host shared library dependency for a given module. # $(1): module name # Returns all dependencies of shared library. define get-all-shared-libs-deps $(if $(_all_deps_for_$(1)_set_),$(_all_deps_for_$(1)_),\ $(eval _all_deps_for_$(1)_ :=) \ $(foreach dep,$(ALL_MODULES.$(1).HOST_SHARED_LIBRARIES),\ $(foreach m,$(call get-all-shared-libs-deps,$(dep)),\ $(eval _all_deps_for_$(1)_ := $$(_all_deps_for_$(1)_) $(m))\ $(eval _all_deps_for_$(1)_ := $(sort $(_all_deps_for_$(1)_))))\ $(eval _all_deps_for_$(1)_ := $$(_all_deps_for_$(1)_) $(dep))\ $(eval _all_deps_for_$(1)_ := $(sort $(_all_deps_for_$(1)_) $(dep)))\ $(eval _all_deps_for_$(1)_set_ := true))\ $(_all_deps_for_$(1)_)) endef # Scan all modules in general-tests and device-tests suite and flatten the # shared library dependencies. define update-host-shared-libs-deps-for-suites $(foreach suite,general-tests device-tests,\ $(foreach m,$(COMPATIBILITY.$(suite).MODULES),\ $(eval my_deps := $(call get-all-shared-libs-deps,$(m)))\ $(foreach dep,$(my_deps),\ $(foreach f,$(ALL_MODULES.$(dep).HOST_SHARED_LIBRARY_FILES),\ $(eval target := $(HOST_OUT_TESTCASES)/$(lastword $(subst /, ,$(dir $(f))))/$(notdir $(f)))\ $(eval COMPATIBILITY.$(suite).HOST_SHARED_LIBRARY.FILES := \ $$(COMPATIBILITY.$(suite).HOST_SHARED_LIBRARY.FILES) $(f):$(target))\ $(eval COMPATIBILITY.$(suite).HOST_SHARED_LIBRARY.FILES := \ $(sort $(COMPATIBILITY.$(suite).HOST_SHARED_LIBRARY.FILES))))))) endef $(call resolve-shared-libs-depes,TARGET_) ifdef TARGET_2ND_ARCH $(call resolve-shared-libs-depes,TARGET_,true) Loading @@ -738,6 +771,9 @@ $(call resolve-shared-libs-depes,HOST_) ifdef HOST_2ND_ARCH $(call resolve-shared-libs-depes,HOST_,true) endif # Update host side shared library dependencies for tests in suite device-tests and general-tests. # This should be called after calling resolve-shared-libs-depes for HOST_2ND_ARCH. $(call update-host-shared-libs-deps-for-suites) ifdef HOST_CROSS_OS $(call resolve-shared-libs-depes,HOST_CROSS_,,true) endif Loading core/tasks/device-tests.mk +6 −2 Original line number Diff line number Diff line Loading @@ -18,12 +18,16 @@ device-tests-zip := $(PRODUCT_OUT)/device-tests.zip # Create an artifact to include a list of test config files in device-tests. device-tests-list-zip := $(PRODUCT_OUT)/device-tests_list.zip my_host_shared_lib_for_device_tests := $(call copy-many-files,$(COMPATIBILITY.device-tests.HOST_SHARED_LIBRARY.FILES)) $(device-tests-zip) : .KATI_IMPLICIT_OUTPUTS := $(device-tests-list-zip) $(device-tests-zip) : PRIVATE_device_tests_list := $(PRODUCT_OUT)/device-tests_list $(device-tests-zip) : $(COMPATIBILITY.device-tests.FILES) $(SOONG_ZIP) $(device-tests-zip) : PRIVATE_HOST_SHARED_LIBS := $(my_host_shared_lib_for_device_tests) $(device-tests-zip) : $(COMPATIBILITY.device-tests.FILES) $(my_host_shared_lib_for_device_tests) $(SOONG_ZIP) echo $(sort $(COMPATIBILITY.device-tests.FILES)) | tr " " "\n" > $@.list grep $(HOST_OUT_TESTCASES) $@.list > $@-host.list || true $(hide) for shared_lib in $(PRIVATE_HOST_SHARED_LIBS); do \ echo $$shared_lib >> $@-host.list; \ done grep $(TARGET_OUT_TESTCASES) $@.list > $@-target.list || true $(hide) $(SOONG_ZIP) -d -o $@ -P host -C $(HOST_OUT) -l $@-host.list -P target -C $(PRODUCT_OUT) -l $@-target.list rm -f $(PRIVATE_device_tests_list) Loading core/tasks/general-tests.mk +17 −1 Original line number Diff line number Diff line Loading @@ -22,17 +22,33 @@ intermediates_dir := $(call intermediates-dir-for,PACKAGING,general-tests) general_tests_zip := $(PRODUCT_OUT)/general-tests.zip # Create an artifact to include a list of test config files in general-tests. general_tests_list_zip := $(PRODUCT_OUT)/general-tests_list.zip # Filter shared entries between general-tests and device-tests's HOST_SHARED_LIBRARY.FILES, # to avoid warning about overriding commands. my_host_shared_lib_for_general_tests := \ $(foreach m,$(filter $(COMPATIBILITY.device-tests.HOST_SHARED_LIBRARY.FILES),\ $(COMPATIBILITY.general-tests.HOST_SHARED_LIBRARY.FILES)),$(call word-colon,2,$(m))) my_general_tests_shared_lib_files := \ $(filter-out $(COMPATIBILITY.device-tests.HOST_SHARED_LIBRARY.FILES),\ $(COMPATIBILITY.general-tests.HOST_SHARED_LIBRARY.FILES)) my_host_shared_lib_for_general_tests += $(call copy-many-files,$(my_general_tests_shared_lib_files)) $(general_tests_zip) : PRIVATE_general_tests_list_zip := $(general_tests_list_zip) $(general_tests_zip) : .KATI_IMPLICIT_OUTPUTS := $(general_tests_list_zip) $(general_tests_zip) : PRIVATE_TOOLS := $(general_tests_tools) $(general_tests_zip) : PRIVATE_INTERMEDIATES_DIR := $(intermediates_dir) $(general_tests_zip) : $(COMPATIBILITY.general-tests.FILES) $(general_tests_tools) $(SOONG_ZIP) $(general_tests_zip) : PRIVATE_HOST_SHARED_LIBS := $(my_host_shared_lib_for_general_tests) $(general_tests_zip) : $(COMPATIBILITY.general-tests.FILES) $(general_tests_tools) $(my_host_shared_lib_for_general_tests) $(SOONG_ZIP) rm -rf $(PRIVATE_INTERMEDIATES_DIR) rm -f $@ $(PRIVATE_general_tests_list_zip) mkdir -p $(PRIVATE_INTERMEDIATES_DIR) $(PRIVATE_INTERMEDIATES_DIR)/tools echo $(sort $(COMPATIBILITY.general-tests.FILES)) | tr " " "\n" > $(PRIVATE_INTERMEDIATES_DIR)/list grep $(HOST_OUT_TESTCASES) $(PRIVATE_INTERMEDIATES_DIR)/list > $(PRIVATE_INTERMEDIATES_DIR)/host.list || true grep $(TARGET_OUT_TESTCASES) $(PRIVATE_INTERMEDIATES_DIR)/list > $(PRIVATE_INTERMEDIATES_DIR)/target.list || true $(hide) for shared_lib in $(PRIVATE_HOST_SHARED_LIBS); do \ echo $$shared_lib >> $(PRIVATE_INTERMEDIATES_DIR)/host.list; \ done cp -fp $(PRIVATE_TOOLS) $(PRIVATE_INTERMEDIATES_DIR)/tools/ $(SOONG_ZIP) -d -o $@ \ -P host -C $(PRIVATE_INTERMEDIATES_DIR) -D $(PRIVATE_INTERMEDIATES_DIR)/tools \ Loading Loading
core/definitions.mk +5 −2 Original line number Diff line number Diff line Loading @@ -3007,14 +3007,17 @@ endef # 1. Copy the files to the many suite output directories. # And for test config files, we'll check the .xml is well-formed before copy. # 2. Add all the files to each suite's dependent files list. # 3. Do the dependency addition to my_all_targets # 3. Do the dependency addition to my_all_targets. # 4. Save the module name to COMPATIBILITY.$(suite).MODULES for each suite. # Requires for each suite: use my_compat_dist_config_$(suite) to define the test config. # and use my_compat_dist_$(suite) to define the others. define create-suite-dependencies $(foreach suite, $(LOCAL_COMPATIBILITY_SUITE), \ $(eval COMPATIBILITY.$(suite).FILES := \ $$(COMPATIBILITY.$(suite).FILES) $$(foreach f,$$(my_compat_dist_$(suite)),$$(call word-colon,2,$$(f))) \ $$(foreach f,$$(my_compat_dist_config_$(suite)),$$(call word-colon,2,$$(f))))) \ $$(foreach f,$$(my_compat_dist_config_$(suite)),$$(call word-colon,2,$$(f)))) \ $(eval COMPATIBILITY.$(suite).MODULES := \ $$(COMPATIBILITY.$(suite).MODULES) $$(my_register_name))) \ $(eval $(my_all_targets) : $(call copy-many-files, \ $(sort $(foreach suite,$(LOCAL_COMPATIBILITY_SUITE),$(my_compat_dist_$(suite))))) \ $(call copy-many-xml-files-checked, \ Loading
core/main.mk +36 −0 Original line number Diff line number Diff line Loading @@ -725,11 +725,44 @@ $(foreach m,$($(if $(2),$($(1)2ND_ARCH_VAR_PREFIX))$(1)DEPENDENCIES_ON_SHARED_LI $(eval r := $(filter $($(root))/%,$(call module-installed-files,\ $(deps))))\ $(if $(filter $(1),HOST_),\ $(eval ALL_MODULES.$(mod).HOST_SHARED_LIBRARY_FILES := $$(ALL_MODULES.$(mod).HOST_SHARED_LIBRARY_FILES) $(word 2,$(p)) $(r))\ $(eval ALL_MODULES.$(mod).HOST_SHARED_LIBRARIES := $$(ALL_MODULES.$(mod).HOST_SHARED_LIBRARIES) $(deps))\ $(eval $(call add-required-host-so-deps,$(word 2,$(p)),$(r))),\ $(eval $(call add-required-deps,$(word 2,$(p)),$(r))))\ $(eval ALL_MODULES.$(mod).REQUIRED += $(deps))) endef # Recursively resolve host shared library dependency for a given module. # $(1): module name # Returns all dependencies of shared library. define get-all-shared-libs-deps $(if $(_all_deps_for_$(1)_set_),$(_all_deps_for_$(1)_),\ $(eval _all_deps_for_$(1)_ :=) \ $(foreach dep,$(ALL_MODULES.$(1).HOST_SHARED_LIBRARIES),\ $(foreach m,$(call get-all-shared-libs-deps,$(dep)),\ $(eval _all_deps_for_$(1)_ := $$(_all_deps_for_$(1)_) $(m))\ $(eval _all_deps_for_$(1)_ := $(sort $(_all_deps_for_$(1)_))))\ $(eval _all_deps_for_$(1)_ := $$(_all_deps_for_$(1)_) $(dep))\ $(eval _all_deps_for_$(1)_ := $(sort $(_all_deps_for_$(1)_) $(dep)))\ $(eval _all_deps_for_$(1)_set_ := true))\ $(_all_deps_for_$(1)_)) endef # Scan all modules in general-tests and device-tests suite and flatten the # shared library dependencies. define update-host-shared-libs-deps-for-suites $(foreach suite,general-tests device-tests,\ $(foreach m,$(COMPATIBILITY.$(suite).MODULES),\ $(eval my_deps := $(call get-all-shared-libs-deps,$(m)))\ $(foreach dep,$(my_deps),\ $(foreach f,$(ALL_MODULES.$(dep).HOST_SHARED_LIBRARY_FILES),\ $(eval target := $(HOST_OUT_TESTCASES)/$(lastword $(subst /, ,$(dir $(f))))/$(notdir $(f)))\ $(eval COMPATIBILITY.$(suite).HOST_SHARED_LIBRARY.FILES := \ $$(COMPATIBILITY.$(suite).HOST_SHARED_LIBRARY.FILES) $(f):$(target))\ $(eval COMPATIBILITY.$(suite).HOST_SHARED_LIBRARY.FILES := \ $(sort $(COMPATIBILITY.$(suite).HOST_SHARED_LIBRARY.FILES))))))) endef $(call resolve-shared-libs-depes,TARGET_) ifdef TARGET_2ND_ARCH $(call resolve-shared-libs-depes,TARGET_,true) Loading @@ -738,6 +771,9 @@ $(call resolve-shared-libs-depes,HOST_) ifdef HOST_2ND_ARCH $(call resolve-shared-libs-depes,HOST_,true) endif # Update host side shared library dependencies for tests in suite device-tests and general-tests. # This should be called after calling resolve-shared-libs-depes for HOST_2ND_ARCH. $(call update-host-shared-libs-deps-for-suites) ifdef HOST_CROSS_OS $(call resolve-shared-libs-depes,HOST_CROSS_,,true) endif Loading
core/tasks/device-tests.mk +6 −2 Original line number Diff line number Diff line Loading @@ -18,12 +18,16 @@ device-tests-zip := $(PRODUCT_OUT)/device-tests.zip # Create an artifact to include a list of test config files in device-tests. device-tests-list-zip := $(PRODUCT_OUT)/device-tests_list.zip my_host_shared_lib_for_device_tests := $(call copy-many-files,$(COMPATIBILITY.device-tests.HOST_SHARED_LIBRARY.FILES)) $(device-tests-zip) : .KATI_IMPLICIT_OUTPUTS := $(device-tests-list-zip) $(device-tests-zip) : PRIVATE_device_tests_list := $(PRODUCT_OUT)/device-tests_list $(device-tests-zip) : $(COMPATIBILITY.device-tests.FILES) $(SOONG_ZIP) $(device-tests-zip) : PRIVATE_HOST_SHARED_LIBS := $(my_host_shared_lib_for_device_tests) $(device-tests-zip) : $(COMPATIBILITY.device-tests.FILES) $(my_host_shared_lib_for_device_tests) $(SOONG_ZIP) echo $(sort $(COMPATIBILITY.device-tests.FILES)) | tr " " "\n" > $@.list grep $(HOST_OUT_TESTCASES) $@.list > $@-host.list || true $(hide) for shared_lib in $(PRIVATE_HOST_SHARED_LIBS); do \ echo $$shared_lib >> $@-host.list; \ done grep $(TARGET_OUT_TESTCASES) $@.list > $@-target.list || true $(hide) $(SOONG_ZIP) -d -o $@ -P host -C $(HOST_OUT) -l $@-host.list -P target -C $(PRODUCT_OUT) -l $@-target.list rm -f $(PRIVATE_device_tests_list) Loading
core/tasks/general-tests.mk +17 −1 Original line number Diff line number Diff line Loading @@ -22,17 +22,33 @@ intermediates_dir := $(call intermediates-dir-for,PACKAGING,general-tests) general_tests_zip := $(PRODUCT_OUT)/general-tests.zip # Create an artifact to include a list of test config files in general-tests. general_tests_list_zip := $(PRODUCT_OUT)/general-tests_list.zip # Filter shared entries between general-tests and device-tests's HOST_SHARED_LIBRARY.FILES, # to avoid warning about overriding commands. my_host_shared_lib_for_general_tests := \ $(foreach m,$(filter $(COMPATIBILITY.device-tests.HOST_SHARED_LIBRARY.FILES),\ $(COMPATIBILITY.general-tests.HOST_SHARED_LIBRARY.FILES)),$(call word-colon,2,$(m))) my_general_tests_shared_lib_files := \ $(filter-out $(COMPATIBILITY.device-tests.HOST_SHARED_LIBRARY.FILES),\ $(COMPATIBILITY.general-tests.HOST_SHARED_LIBRARY.FILES)) my_host_shared_lib_for_general_tests += $(call copy-many-files,$(my_general_tests_shared_lib_files)) $(general_tests_zip) : PRIVATE_general_tests_list_zip := $(general_tests_list_zip) $(general_tests_zip) : .KATI_IMPLICIT_OUTPUTS := $(general_tests_list_zip) $(general_tests_zip) : PRIVATE_TOOLS := $(general_tests_tools) $(general_tests_zip) : PRIVATE_INTERMEDIATES_DIR := $(intermediates_dir) $(general_tests_zip) : $(COMPATIBILITY.general-tests.FILES) $(general_tests_tools) $(SOONG_ZIP) $(general_tests_zip) : PRIVATE_HOST_SHARED_LIBS := $(my_host_shared_lib_for_general_tests) $(general_tests_zip) : $(COMPATIBILITY.general-tests.FILES) $(general_tests_tools) $(my_host_shared_lib_for_general_tests) $(SOONG_ZIP) rm -rf $(PRIVATE_INTERMEDIATES_DIR) rm -f $@ $(PRIVATE_general_tests_list_zip) mkdir -p $(PRIVATE_INTERMEDIATES_DIR) $(PRIVATE_INTERMEDIATES_DIR)/tools echo $(sort $(COMPATIBILITY.general-tests.FILES)) | tr " " "\n" > $(PRIVATE_INTERMEDIATES_DIR)/list grep $(HOST_OUT_TESTCASES) $(PRIVATE_INTERMEDIATES_DIR)/list > $(PRIVATE_INTERMEDIATES_DIR)/host.list || true grep $(TARGET_OUT_TESTCASES) $(PRIVATE_INTERMEDIATES_DIR)/list > $(PRIVATE_INTERMEDIATES_DIR)/target.list || true $(hide) for shared_lib in $(PRIVATE_HOST_SHARED_LIBS); do \ echo $$shared_lib >> $(PRIVATE_INTERMEDIATES_DIR)/host.list; \ done cp -fp $(PRIVATE_TOOLS) $(PRIVATE_INTERMEDIATES_DIR)/tools/ $(SOONG_ZIP) -d -o $@ \ -P host -C $(PRIVATE_INTERMEDIATES_DIR) -D $(PRIVATE_INTERMEDIATES_DIR)/tools \ Loading