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
This commit is contained in:
Dan Shi 2018-04-13 14:39:53 -07:00
parent 3204fd4bed
commit 639c6ccf7a
4 changed files with 20 additions and 5 deletions

View File

@ -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
###########################################################

View File

@ -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

View File

@ -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
###########################################################

View File

@ -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)