From 40f5c3a1fe7c3b415c39d76648dd02af696e52b8 Mon Sep 17 00:00:00 2001 From: Yike Date: Tue, 14 Feb 2023 12:27:59 +0800 Subject: [PATCH] Export test config info to module-info while the module is uninstallable All Robolectric tests are set as uninstallable modules, which skips the logic exporting `test_config` and `auto_test_config` to module-info. But downstream infra needs this information to determine if a module is a test module. So that this change moves the logic that sets `test_config` and `auto_test_config` for Robolectric tests out of the snippet specifically for installable module. Test: m out/target/product/coral/module-info.json Bug: 268670243 Change-Id: Icf4caf3d6833f3a39927fb69c6fb76762b8f6f14 --- core/base_rules.mk | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/core/base_rules.mk b/core/base_rules.mk index 18730aa0e3..ec5a21e917 100644 --- a/core/base_rules.mk +++ b/core/base_rules.mk @@ -716,6 +716,15 @@ endif ## Compatibility suite files. ########################################################### ifdef LOCAL_COMPATIBILITY_SUITE + +ifneq (,$(LOCAL_FULL_TEST_CONFIG)) + test_config := $(LOCAL_FULL_TEST_CONFIG) +else ifneq (,$(LOCAL_TEST_CONFIG)) + test_config := $(LOCAL_PATH)/$(LOCAL_TEST_CONFIG) +else + test_config := $(wildcard $(LOCAL_PATH)/AndroidTest.xml) +endif + ifneq (true,$(LOCAL_UNINSTALLABLE_MODULE)) # If we are building a native test or benchmark and its stem variants are not defined, @@ -762,13 +771,6 @@ $(foreach suite, $(LOCAL_COMPATIBILITY_SUITE), \ # Auto-generate build config. -ifneq (,$(LOCAL_FULL_TEST_CONFIG)) - test_config := $(LOCAL_FULL_TEST_CONFIG) -else ifneq (,$(LOCAL_TEST_CONFIG)) - test_config := $(LOCAL_PATH)/$(LOCAL_TEST_CONFIG) -else - test_config := $(wildcard $(LOCAL_PATH)/AndroidTest.xml) -endif ifeq (,$(test_config)) ifneq (true,$(is_native)) is_instrumentation_test := true @@ -847,16 +849,6 @@ else endif endif # $(my_prefix)$(LOCAL_MODULE_CLASS)_$(LOCAL_MODULE)_compat_files -# HACK: pretend a soong LOCAL_FULL_TEST_CONFIG is autogenerated by setting the flag in -# module-info.json -# TODO: (b/113029686) Add explicit flag from Soong to determine if a test was -# autogenerated. -ifneq (,$(filter $(SOONG_OUT_DIR)%,$(LOCAL_FULL_TEST_CONFIG))) - ifeq ($(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK)) - ALL_MODULES.$(my_register_name).auto_test_config := true - endif -endif - ifeq ($(use_testcase_folder),true) ifneq ($(my_test_data_file_pairs),) @@ -897,6 +889,17 @@ $(foreach suite, $(LOCAL_COMPATIBILITY_SUITE), \ $(eval my_compat_dist_test_data_$(suite) := )) endif # LOCAL_UNINSTALLABLE_MODULE + +# HACK: pretend a soong LOCAL_FULL_TEST_CONFIG is autogenerated by setting the flag in +# module-info.json +# TODO: (b/113029686) Add explicit flag from Soong to determine if a test was +# autogenerated. +ifneq (,$(filter $(SOONG_OUT_DIR)%,$(LOCAL_FULL_TEST_CONFIG))) + ifeq ($(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK)) + ALL_MODULES.$(my_register_name).auto_test_config := true + endif +endif + endif # LOCAL_COMPATIBILITY_SUITE my_supported_variant :=