You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
3.6 KiB
97 lines
3.6 KiB
4 months ago
|
# Copyright (C) 2016 The Android Open Source Project
|
||
|
#
|
||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||
|
# you may not use this file except in compliance with the License.
|
||
|
# You may obtain a copy of the License at
|
||
|
#
|
||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||
|
#
|
||
|
# Unless required by applicable law or agreed to in writing, software
|
||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
# See the License for the specific language governing permissions and
|
||
|
# limitations under the License.
|
||
|
|
||
|
# Rules to generate a tests zip file that included test modules
|
||
|
# based on the configuration.
|
||
|
|
||
|
LOCAL_PATH := $(call my-dir)
|
||
|
include $(LOCAL_PATH)/tests/instrumentation_test_list.mk
|
||
|
-include $(wildcard vendor/*/build/tasks/tests/instrumentation_test_list.mk)
|
||
|
|
||
|
my_modules := \
|
||
|
$(instrumentation_tests)
|
||
|
|
||
|
my_package_name := continuous_instrumentation_tests
|
||
|
|
||
|
include $(BUILD_SYSTEM)/tasks/tools/package-modules.mk
|
||
|
|
||
|
.PHONY: continuous_instrumentation_tests
|
||
|
continuous_instrumentation_tests : $(my_package_zip)
|
||
|
|
||
|
name := $(TARGET_PRODUCT)-continuous_instrumentation_tests-$(FILE_NAME_TAG)
|
||
|
$(call dist-for-goals, continuous_instrumentation_tests, $(my_package_zip):$(name).zip)
|
||
|
|
||
|
# Also build this when you run "make tests".
|
||
|
tests: continuous_instrumentation_tests
|
||
|
|
||
|
# Include test em files in emma metadata
|
||
|
ifeq ($(EMMA_INSTRUMENT_STATIC),true)
|
||
|
$(EMMA_META_ZIP) : continuous_instrumentation_tests
|
||
|
endif
|
||
|
|
||
|
# Rules to generate an API-coverage report based on the above tests
|
||
|
|
||
|
# Coverage report output location
|
||
|
coverage_out := $(call intermediates-dir-for,PACKAGING,continuous_instrumentation_tests_coverage)
|
||
|
coverage_report := $(coverage_out)/api_coverage.html
|
||
|
|
||
|
# Framework API descriptions
|
||
|
api_text := $(call intermediates-dir-for,ETC,frameworks-base-api-system-current.txt)/frameworks-base-api-system-current.txt
|
||
|
api_xml := $(coverage_out)/api.xml
|
||
|
$(api_xml) : $(api_text) $(APICHECK)
|
||
|
$(hide) echo "Converting API file to XML: $@"
|
||
|
$(hide) mkdir -p $(dir $@)
|
||
|
$(hide) $(APICHECK_COMMAND) -convert2xml $< $@
|
||
|
|
||
|
# CTS API coverage tool
|
||
|
api_coverage_exe := $(HOST_OUT_EXECUTABLES)/cts-api-coverage
|
||
|
dexdeps_exe := $(HOST_OUT_EXECUTABLES)/dexdeps
|
||
|
|
||
|
# APKs to measure for coverage
|
||
|
test_apks := $(call intermediates-dir-for,PACKAGING,continuous_instrumentation_tests)/DATA/app/*
|
||
|
|
||
|
# Rule to generate the coverage report
|
||
|
api_coverage_dep := $(my_package_zip) $(api_coverage_exe) $(dexdeps_exe) $(api_xml)
|
||
|
$(coverage_report): PRIVATE_API_COVERAGE_EXE := $(api_coverage_exe)
|
||
|
$(coverage_report): PRIVATE_DEXDEPS_EXE := $(dexdeps_exe)
|
||
|
$(coverage_report): PRIVATE_API_XML := $(api_xml)
|
||
|
$(coverage_report): PRIVATE_REPORT_TITLE := "APCT API Coverage Report"
|
||
|
$(coverage_report): PRIVATE_TEST_APKS := $(test_apks)
|
||
|
$(coverage_report): $(api_coverage_dep) | $(ACP)
|
||
|
$(hide) mkdir -p $(dir $@)
|
||
|
$(hide) $(PRIVATE_API_COVERAGE_EXE) -d $(PRIVATE_DEXDEPS_EXE) \
|
||
|
-a $(PRIVATE_API_XML) -t $(PRIVATE_REPORT_TITLE) -f html -o $@ $(PRIVATE_TEST_APKS)
|
||
|
@ echo $(PRIVATE_REPORT_TITLE): file://$$(cd $(dir $@); pwd)/$(notdir $@)
|
||
|
|
||
|
.PHONY: continuous_instrumentation_tests_api_coverage
|
||
|
continuous_instrumentation_tests_api_coverage : $(coverage_report)
|
||
|
|
||
|
# Include the coverage report in the dist folder
|
||
|
$(call dist-for-goals, continuous_instrumentation_tests_api_coverage, \
|
||
|
$(coverage_report):$(name)-api_coverage.html)
|
||
|
|
||
|
# Also build this when you run "make tests".
|
||
|
# This allow us to not change the build server config.
|
||
|
tests : continuous_instrumentation_tests_api_coverage
|
||
|
|
||
|
# Reset temp vars
|
||
|
coverage_out :=
|
||
|
coverage_report :=
|
||
|
api_text :=
|
||
|
api_xml :=
|
||
|
api_coverage_exe :=
|
||
|
dexdeps_exe :=
|
||
|
test_apks :=
|
||
|
api_coverage_dep :=
|