From 7c1c245214ec1b7f005f743e14b1fc27897f7b2a Mon Sep 17 00:00:00 2001 From: Yihan Dong Date: Wed, 29 May 2024 18:01:57 +0800 Subject: [PATCH] Add cts-api-map report targets Test: m cts-api-html-api-map cts-api-xml-api-map cts-system-api-xml-api-map cts-system-api-html-api-map Bug: 328699028 Change-Id: Idadeb9a9819148071761a75d97d814610c35fd30 --- core/tasks/cts.mk | 88 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/core/tasks/cts.mk b/core/tasks/cts.mk index 2e2ea79035..294cb577e2 100644 --- a/core/tasks/cts.mk +++ b/core/tasks/cts.mk @@ -92,8 +92,16 @@ $(verifier-zip): $(SOONG_ANDROID_CTS_VERIFIER_ZIP) cts_api_coverage_exe := $(HOST_OUT_EXECUTABLES)/cts-api-coverage dexdeps_exe := $(HOST_OUT_EXECUTABLES)/dexdeps +cts_api_map_exe := $(HOST_OUT_EXECUTABLES)/cts-api-map coverage_out := $(HOST_OUT)/cts-api-coverage +api_map_out := $(HOST_OUT)/cts-api-map + +cts_jar_files := $(api_map_out)/api_map_files.txt +$(cts_jar_files): PRIVATE_API_MAP_FILES := $(sort $(COMPATIBILITY.cts.API_MAP_FILES)) +$(cts_jar_files): + mkdir -p $(dir $@) + echo $(PRIVATE_API_MAP_FILES) > $@ api_xml_description := $(TARGET_OUT_COMMON_INTERMEDIATES)/api.xml @@ -116,6 +124,14 @@ cts-combined-xml-coverage-report := $(coverage_out)/combined-coverage.xml cts_api_coverage_dependencies := $(cts_api_coverage_exe) $(dexdeps_exe) $(api_xml_description) $(napi_xml_description) cts_system_api_coverage_dependencies := $(cts_api_coverage_exe) $(dexdeps_exe) $(system_api_xml_description) +cts-api-xml-api-map-report := $(api_map_out)/api-map.xml +cts-api-html-api-map-report := $(api_map_out)/api-map.html +cts-system-api-xml-api-map-report := $(api_map_out)/system-api-map.xml +cts-system-api-html-api-map-report := $(api_map_out)/system-api-map.html + +cts_system_api_map_dependencies := $(cts_api_map_exe) $(system_api_xml_description) $(cts_jar_files) +cts_api_map_dependencies := $(cts_api_map_exe) $(api_xml_description) $(cts_jar_files) + android_cts_zip := $(HOST_OUT)/cts/android-cts.zip cts_verifier_apk := $(call intermediates-dir-for,APPS,CtsVerifier)/package.apk @@ -194,6 +210,48 @@ cts-combined-xml-coverage : $(cts-combined-xml-coverage-report) .PHONY: cts-coverage-report-all cts-api-coverage cts-coverage-report-all: cts-test-coverage cts-verifier-coverage cts-combined-coverage cts-combined-xml-coverage +$(cts-system-api-xml-api-map-report): PRIVATE_CTS_API_MAP_EXE := $(cts_api_map_exe) +$(cts-system-api-xml-api-map-report): PRIVATE_API_XML_DESC := $(system_api_xml_description) +$(cts-system-api-xml-api-map-report): PRIVATE_JAR_FILES := $(cts_jar_files) +$(cts-system-api-xml-api-map-report) : $(android_cts_zip) $(cts_system_api_map_dependencies) | $(ACP) + $(call generate-api-map-report-cts,"CTS System API MAP Report - XML",\ + $(PRIVATE_JAR_FILES),xml) + +$(cts-system-api-html-api-map-report): PRIVATE_CTS_API_MAP_EXE := $(cts_api_map_exe) +$(cts-system-api-html-api-map-report): PRIVATE_API_XML_DESC := $(system_api_xml_description) +$(cts-system-api-html-api-map-report): PRIVATE_JAR_FILES := $(cts_jar_files) +$(cts-system-api-html-api-map-report) : $(android_cts_zip) $(cts_system_api_map_dependencies) | $(ACP) + $(call generate-api-map-report-cts,"CTS System API MAP Report - HTML",\ + $(PRIVATE_JAR_FILES),html) + +$(cts-api-xml-api-map-report): PRIVATE_CTS_API_MAP_EXE := $(cts_api_map_exe) +$(cts-api-xml-api-map-report): PRIVATE_API_XML_DESC := $(api_xml_description) +$(cts-api-xml-api-map-report): PRIVATE_JAR_FILES := $(cts_jar_files) +$(cts-api-xml-api-map-report) : $(android_cts_zip) $(cts_api_map_dependencies) | $(ACP) + $(call generate-api-map-report-cts,"CTS API MAP Report - XML",\ + $(PRIVATE_JAR_FILES),xml) + +$(cts-api-html-api-map-report): PRIVATE_CTS_API_MAP_EXE := $(cts_api_map_exe) +$(cts-api-html-api-map-report): PRIVATE_API_XML_DESC := $(api_xml_description) +$(cts-api-html-api-map-report): PRIVATE_JAR_FILES := $(cts_jar_files) +$(cts-api-html-api-map-report) : $(android_cts_zip) $(cts_api_map_dependencies) | $(ACP) + $(call generate-api-map-report-cts,"CTS API MAP Report - HTML",\ + $(PRIVATE_JAR_FILES),html) + +.PHONY: cts-system-api-xml-api-map +cts-system-api-xml-api-map : $(cts-system-api-xml-api-map-report) + +.PHONY: cts-system-api-html-api-map +cts-system-api-html-api-map : $(cts-system-api-html-api-map-report) + +.PHONY: cts-api-xml-api-map +cts-api-xml-api-map : $(cts-api-xml-api-map-report) + +.PHONY: cts-api-html-api-map +cts-api-html-api-map : $(cts-api-html-api-map-report) + +.PHONY: cts-api-map-all + # Put the test coverage report in the dist dir if "cts-api-coverage" is among the build goals. $(call dist-for-goals, cts-api-coverage, $(cts-test-coverage-report):cts-test-coverage-report.html) $(call dist-for-goals, cts-api-coverage, $(cts-system-api-coverage-report):cts-system-api-coverage-report.html) @@ -209,6 +267,17 @@ ALL_TARGETS.$(cts-verifier-coverage-report).META_LIC:=$(module_license_metadata) ALL_TARGETS.$(cts-combined-coverage-report).META_LIC:=$(module_license_metadata) ALL_TARGETS.$(cts-combined-xml-coverage-report).META_LIC:=$(module_license_metadata) +# Put the test api map report in the dist dir if "cts-api-map-all" is among the build goals. +$(call dist-for-goals, cts-api-map-all, $(cts-system-api-xml-api-map-report):cts-system-api-xml-api-map-report.xml) +$(call dist-for-goals, cts-api-map-all, $(cts-system-api-html-api-map-report):cts-system-api-html-api-map-report.html) +$(call dist-for-goals, cts-api-map-all, $(cts-api-xml-api-map-report):cts-api-xml-api-map-report.xml) +$(call dist-for-goals, cts-api-map-all, $(cts-api-html-api-map-report):cts-api-html-api-map-report.html) + +ALL_TARGETS.$(cts-system-api-xml-api-map-report).META_LIC:=$(module_license_metadata) +ALL_TARGETS.$(cts-system-api-html-api-map-report).META_LIC:=$(module_license_metadata) +ALL_TARGETS.$(cts-api-xml-api-map-report).META_LIC:=$(module_license_metadata) +ALL_TARGETS.$(cts-api-html-api-map-report).META_LIC:=$(module_license_metadata) + # Arguments; # 1 - Name of the report printed out on the screen # 2 - List of apk files that will be scanned to generate the report @@ -219,23 +288,42 @@ define generate-coverage-report-cts @ echo $(1): file://$$(cd $(dir $@); pwd)/$(notdir $@) endef +# Arguments; +# 1 - Name of the report printed out on the screen +# 2 - A file containing list of files that to be analyzed +# 3 - Format of the report +define generate-api-map-report-cts + $(hide) mkdir -p $(dir $@) + $(hide) $(PRIVATE_CTS_API_MAP_EXE) -j 8 -a $(PRIVATE_API_XML_DESC) -i $(2) -f $(3) -o $@ + @ echo $(1): file://$$(cd $(dir $@); pwd)/$(notdir $@) +endef + # Reset temp vars cts_api_coverage_dependencies := cts_system_api_coverage_dependencies := +cts_api_map_dependencies := +cts_system_api_map_dependencies := cts-combined-coverage-report := cts-combined-xml-coverage-report := cts-verifier-coverage-report := cts-test-coverage-report := cts-system-api-coverage-report := cts-system-api-xml-coverage-report := +cts-api-xml-api-map-report := +cts-api-html-api-map-report := +cts-system-api-xml-api-map-report := +cts-system-api-html-api-map-report := api_xml_description := api_text_description := system_api_xml_description := napi_xml_description := napi_text_description := coverage_out := +api_map_out := +cts_jar_files := dexdeps_exe := cts_api_coverage_exe := +cts_api_map_exe := cts_verifier_apk := android_cts_zip := cts-dir :=