check-flagged-apis: add script to run tool on actual data
Add a script to make it easier to check-flagged-apis for the public APIs
and the three flavours of @FlaggedApi.
Bug: 334870672
Test: lunch sdk-next-eng && source check-flagged-apis.sh
Change-Id: I8b5e2642ade84560c5c61ae49d8c0dcdedb841ca
diff --git a/tools/check-flagged-apis/check-flagged-apis.sh b/tools/check-flagged-apis/check-flagged-apis.sh
new file mode 100644
index 0000000..ae671d1
--- /dev/null
+++ b/tools/check-flagged-apis/check-flagged-apis.sh
@@ -0,0 +1,69 @@
+# Copyright (C) 2024 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.
+
+# Run check-flagged-apis for public APIs and the three @SystemApi flavours
+# Usage: lunch <your-target> && source <this script>
+
+function build() {
+ m sdk dist && m \
+ check-flagged-apis \
+ all_aconfig_declarations \
+ frameworks-base-api-current.txt \
+ frameworks-base-api-system-current.txt \
+ frameworks-base-api-system-server-current.txt \
+ frameworks-base-api-module-lib-current.txt
+}
+
+function run() {
+ local errors=0
+
+ echo "# current"
+ check-flagged-apis \
+ --api-signature $(gettop)/out/target/product/mainline_x86/obj/ETC/frameworks-base-api-current.txt_intermediates/frameworks-base-api-current.txt \
+ --flag-values $(gettop)/out/soong/.intermediates/all_aconfig_declarations.pb \
+ --api-versions $(gettop)/out/dist/data/api-versions.xml
+ (( errors += $? ))
+
+ echo
+ echo "# system-current"
+ check-flagged-apis \
+ --api-signature $(gettop)/out/target/product/mainline_x86/obj/ETC/frameworks-base-api-system-current.txt_intermediates/frameworks-base-api-system-current.txt \
+ --flag-values $(gettop)/out/soong/.intermediates/all_aconfig_declarations.pb \
+ --api-versions $(gettop)/out/dist/system-data/api-versions.xml
+ (( errors += $? ))
+
+ echo
+ echo "# system-server-current"
+ check-flagged-apis \
+ --api-signature $(gettop)/out/target/product/mainline_x86/obj/ETC/frameworks-base-api-system-server-current.txt_intermediates/frameworks-base-api-system-server-current.txt \
+ --flag-values $(gettop)/out/soong/.intermediates/all_aconfig_declarations.pb \
+ --api-versions $(gettop)/out/dist/system-server-data/api-versions.xml
+ (( errors += $? ))
+
+ echo
+ echo "# module-lib"
+ check-flagged-apis \
+ --api-signature $(gettop)/out/target/product/mainline_x86/obj/ETC/frameworks-base-api-module-lib-current.txt_intermediates/frameworks-base-api-module-lib-current.txt \
+ --flag-values $(gettop)/out/soong/.intermediates/all_aconfig_declarations.pb \
+ --api-versions $(gettop)/out/dist/module-lib-data/api-versions.xml
+ (( errors += $? ))
+
+ return $errors
+}
+
+if [[ "$1" != "--skip-build" ]]; then
+ build && run
+else
+ run
+fi