From 639c6ccf7a5235562ba848c6cdcbb30cf40d075d Mon Sep 17 00:00:00 2001 From: Dan Shi Date: Fri, 13 Apr 2018 14:39:53 -0700 Subject: [PATCH] Allow tests to be disabled for presubmit check A test can be disabled in two ways: 1. Add the test name to ALL_DISABLED_PRESUBMIT_TESTS variable. Integration tests (tests inside TradeFed) can only be disabled in this way. 2. In module config, set LOCAL_PRESUBMIT_DISABLED to true. This works for tests with build target. This change allows tests to be skipped in presubmit check to be saved in a list that's included in test-mappings.zip build artifact. Bug: 74971025 Test: m dist -j test-mapping Change-Id: I6e3016b017ce1ade024dc4ded72a10c778b88e7f --- core/base_rules.mk | 7 +++++++ core/clear_vars.mk | 1 + core/definitions.mk | 3 +++ core/tasks/test_mapping.mk | 14 +++++++++----- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/core/base_rules.mk b/core/base_rules.mk index 94c323ec22..f1ba90b596 100644 --- a/core/base_rules.mk +++ b/core/base_rules.mk @@ -645,6 +645,13 @@ $(call create-suite-dependencies) endif # LOCAL_COMPATIBILITY_SUITE +########################################################### +## Add test module to ALL_DISABLED_PRESUBMIT_TESTS if LOCAL_PRESUBMIT_DISABLED is set to true. +########################################################### +ifeq ($(LOCAL_PRESUBMIT_DISABLED),true) + ALL_DISABLED_PRESUBMIT_TESTS += $(LOCAL_MODULE) +endif # LOCAL_PRESUBMIT_DISABLED + ########################################################### ## Register with ALL_MODULES ########################################################### diff --git a/core/clear_vars.mk b/core/clear_vars.mk index eccaad54d5..12f38dcc56 100644 --- a/core/clear_vars.mk +++ b/core/clear_vars.mk @@ -196,6 +196,7 @@ LOCAL_PREBUILT_MODULE_FILE:= LOCAL_PREBUILT_OBJ_FILES:= LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES:= LOCAL_PREBUILT_STRIP_COMMENTS:= +LOCAL_PRESUBMIT_DISABLED:= LOCAL_PRIVATE_PLATFORM_APIS:= LOCAL_PRIVILEGED_MODULE:= # '',full,custom,disabled,obfuscation,optimization diff --git a/core/definitions.mk b/core/definitions.mk index fe966886cb..6f029e9c57 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -102,6 +102,9 @@ ALL_INIT_RC_INSTALLED_PAIRS := # All installed vintf manifest fragments for a partition at ALL_VINTF_MANIFEST_FRAGMENTS_LIST:= +# All tests that should be skipped in presubmit check. +ALL_DISABLED_PRESUBMIT_TESTS := + ########################################################### ## Debugging; prints a variable list to stdout ########################################################### diff --git a/core/tasks/test_mapping.mk b/core/tasks/test_mapping.mk index 36275b0d9a..da64cab40d 100644 --- a/core/tasks/test_mapping.mk +++ b/core/tasks/test_mapping.mk @@ -12,7 +12,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Create an artifact to include TEST_MAPPING files in source tree. +# Create an artifact to include TEST_MAPPING files in source tree. Also include +# a file (out/disabled-presubmit-tests) containing the tests that should be +# skipped in presubmit check. .PHONY: test_mapping @@ -21,13 +23,15 @@ test_mappings_zip := $(intermediates)/test_mappings.zip test_mapping_list := $(OUT_DIR)/.module_paths/TEST_MAPPING.list test_mappings := $(file <$(test_mapping_list)) $(test_mappings_zip) : PRIVATE_test_mappings := $(subst $(newline),\n,$(test_mappings)) +$(test_mappings_zip) : PRIVATE_all_disabled_presubmit_tests := $(ALL_DISABLED_PRESUBMIT_TESTS) $(test_mappings_zip) : $(test_mappings) $(SOONG_ZIP) - @echo "Building artifact to include TEST_MAPPING files." - rm -rf $@ + @echo "Building artifact to include TEST_MAPPING files and tests to skip in presubmit check." + rm -rf $@ $(dir $@)/disabled-presubmit-tests + echo $(sort $(PRIVATE_all_disabled_presubmit_tests)) | tr " " "\n" > $(dir $@)/disabled-presubmit-tests echo -e "$(PRIVATE_test_mappings)" > $@.list - $(SOONG_ZIP) -o $@ -C . -l $@.list - rm -f $@.list + $(SOONG_ZIP) -o $@ -C . -l $@.list -C $(dir $@) -f $(dir $@)/disabled-presubmit-tests + rm -f $@.list $(dir $@)/disabled-presubmit-tests test_mapping : $(test_mappings_zip)