1*7594170eSAndroid Build Coastguard Worker# Copyright (C) 2023 The Android Open Source Project 2*7594170eSAndroid Build Coastguard Worker# 3*7594170eSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); 4*7594170eSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 5*7594170eSAndroid Build Coastguard Worker# You may obtain a copy of the License at 6*7594170eSAndroid Build Coastguard Worker# 7*7594170eSAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 8*7594170eSAndroid Build Coastguard Worker# 9*7594170eSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 10*7594170eSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, 11*7594170eSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*7594170eSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 13*7594170eSAndroid Build Coastguard Worker# limitations under the License. 14*7594170eSAndroid Build Coastguard Workerload("@bazel_skylib//lib:unittest.bzl", "asserts", "unittest") 15*7594170eSAndroid Build Coastguard Workerload("//build/bazel/rules/android:manifest_fixer_internal.bzl", manifest_fixer_for_testing = "manifest_fixer_internal") 16*7594170eSAndroid Build Coastguard Workerload("//build/bazel/rules/common:api.bzl", "api") 17*7594170eSAndroid Build Coastguard Worker 18*7594170eSAndroid Build Coastguard Workerdef _target_sdk_version_override_test_impl(ctx): 19*7594170eSAndroid Build Coastguard Worker env = unittest.begin(ctx) 20*7594170eSAndroid Build Coastguard Worker platform_sdk_codename = "Tiramisu" 21*7594170eSAndroid Build Coastguard Worker platform_sdk_version = "33" 22*7594170eSAndroid Build Coastguard Worker platform_version_active_codenames = [platform_sdk_codename] 23*7594170eSAndroid Build Coastguard Worker 24*7594170eSAndroid Build Coastguard Worker # Schema: (Input targetSdkVersion, PlatformSdkFinal, Is unbundled app build) -> Expected targetSdkVersion 25*7594170eSAndroid Build Coastguard Worker _VERSIONS_UNDER_TEST = { 26*7594170eSAndroid Build Coastguard Worker ("29", False, False): "29", 27*7594170eSAndroid Build Coastguard Worker ("30", False, True): "30", 28*7594170eSAndroid Build Coastguard Worker ("current", False, True): str(api.FUTURE_API_LEVEL), 29*7594170eSAndroid Build Coastguard Worker ("30", True, False): "30", 30*7594170eSAndroid Build Coastguard Worker ("30", True, True): "30", 31*7594170eSAndroid Build Coastguard Worker ("Tiramisu", True, True): "33", 32*7594170eSAndroid Build Coastguard Worker ("current", True, True): "33", 33*7594170eSAndroid Build Coastguard Worker } 34*7594170eSAndroid Build Coastguard Worker for (target_sdk_version, platform_sdk_final, is_unbundled_app_build), expected_target_sdk_version in _VERSIONS_UNDER_TEST.items(): 35*7594170eSAndroid Build Coastguard Worker platform_sdk_variables = struct( 36*7594170eSAndroid Build Coastguard Worker platform_sdk_codename = platform_sdk_codename, 37*7594170eSAndroid Build Coastguard Worker platform_sdk_final = platform_sdk_final, 38*7594170eSAndroid Build Coastguard Worker platform_sdk_version = platform_sdk_version, 39*7594170eSAndroid Build Coastguard Worker platform_version_active_codenames = platform_version_active_codenames, 40*7594170eSAndroid Build Coastguard Worker ) 41*7594170eSAndroid Build Coastguard Worker asserts.equals( 42*7594170eSAndroid Build Coastguard Worker env, 43*7594170eSAndroid Build Coastguard Worker expected_target_sdk_version, 44*7594170eSAndroid Build Coastguard Worker manifest_fixer_for_testing.target_sdk_version_for_manifest_fixer( 45*7594170eSAndroid Build Coastguard Worker target_sdk_version, 46*7594170eSAndroid Build Coastguard Worker platform_sdk_variables, 47*7594170eSAndroid Build Coastguard Worker is_unbundled_app_build, 48*7594170eSAndroid Build Coastguard Worker ), 49*7594170eSAndroid Build Coastguard Worker ("unexpected target SDK version for manifest fixer %s with input target" + 50*7594170eSAndroid Build Coastguard Worker "SDK version %s, platform SDK variables %s and is_unbundled_app_build %s") % ( 51*7594170eSAndroid Build Coastguard Worker expected_target_sdk_version, 52*7594170eSAndroid Build Coastguard Worker target_sdk_version, 53*7594170eSAndroid Build Coastguard Worker platform_sdk_variables, 54*7594170eSAndroid Build Coastguard Worker is_unbundled_app_build, 55*7594170eSAndroid Build Coastguard Worker ), 56*7594170eSAndroid Build Coastguard Worker ) 57*7594170eSAndroid Build Coastguard Worker return unittest.end(env) 58*7594170eSAndroid Build Coastguard Worker 59*7594170eSAndroid Build Coastguard Workertarget_sdk_version_override_test = unittest.make(_target_sdk_version_override_test_impl) 60*7594170eSAndroid Build Coastguard Worker 61*7594170eSAndroid Build Coastguard Workerdef manifest_fixer_test_suite(name): 62*7594170eSAndroid Build Coastguard Worker unittest.suite( 63*7594170eSAndroid Build Coastguard Worker name, 64*7594170eSAndroid Build Coastguard Worker target_sdk_version_override_test, 65*7594170eSAndroid Build Coastguard Worker ) 66