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 Worker 15*7594170eSAndroid Build Coastguard Workerload("@bazel_skylib//lib:unittest.bzl", "asserts", "unittest") 16*7594170eSAndroid Build Coastguard Workerload("//build/bazel/rules/java:versions.bzl", "java_versions") 17*7594170eSAndroid Build Coastguard Workerload("//build/bazel/rules/common:api.bzl", "api") 18*7594170eSAndroid Build Coastguard Worker 19*7594170eSAndroid Build Coastguard Workerdef _get_java_version_test_impl(ctx): 20*7594170eSAndroid Build Coastguard Worker env = unittest.begin(ctx) 21*7594170eSAndroid Build Coastguard Worker 22*7594170eSAndroid Build Coastguard Worker _VERSIONS_UNDER_TEST = { 23*7594170eSAndroid Build Coastguard Worker (None, api.FUTURE_API_LEVEL): 17, 24*7594170eSAndroid Build Coastguard Worker (None, 23): 7, 25*7594170eSAndroid Build Coastguard Worker (None, 33): 11, 26*7594170eSAndroid Build Coastguard Worker ("1.7", api.FUTURE_API_LEVEL): 7, 27*7594170eSAndroid Build Coastguard Worker ("1.7", 23): 7, 28*7594170eSAndroid Build Coastguard Worker ("1.8", 33): 8, 29*7594170eSAndroid Build Coastguard Worker (None, None): 17, 30*7594170eSAndroid Build Coastguard Worker } 31*7594170eSAndroid Build Coastguard Worker for java_sdk_version, expected_java_version in _VERSIONS_UNDER_TEST.items(): 32*7594170eSAndroid Build Coastguard Worker java_version = java_sdk_version[0] 33*7594170eSAndroid Build Coastguard Worker sdk_version = java_sdk_version[1] 34*7594170eSAndroid Build Coastguard Worker asserts.equals(env, expected_java_version, java_versions.get_version(java_version, sdk_version), "unexpected java version for java_version %s and sdk_version %s" % (java_version, sdk_version)) 35*7594170eSAndroid Build Coastguard Worker 36*7594170eSAndroid Build Coastguard Worker return unittest.end(env) 37*7594170eSAndroid Build Coastguard Worker 38*7594170eSAndroid Build Coastguard Workerget_java_version_test = unittest.make(_get_java_version_test_impl) 39*7594170eSAndroid Build Coastguard Worker 40*7594170eSAndroid Build Coastguard Workerdef versions_test_suite(name): 41*7594170eSAndroid Build Coastguard Worker unittest.suite( 42*7594170eSAndroid Build Coastguard Worker name, 43*7594170eSAndroid Build Coastguard Worker get_java_version_test, 44*7594170eSAndroid Build Coastguard Worker ) 45