1*7594170eSAndroid Build Coastguard Worker# Copyright (C) 2022 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", "analysistest", "asserts") 15*7594170eSAndroid Build Coastguard Workerload(":bootclasspath.bzl", "bootclasspath") 16*7594170eSAndroid Build Coastguard Workerload(":import.bzl", "java_import") 17*7594170eSAndroid Build Coastguard Workerload(":java_system_modules.bzl", "java_system_modules") 18*7594170eSAndroid Build Coastguard Worker 19*7594170eSAndroid Build Coastguard Workerdef _bootclasspath_test_impl(ctx): 20*7594170eSAndroid Build Coastguard Worker env = analysistest.begin(ctx) 21*7594170eSAndroid Build Coastguard Worker bootclasspath_target = analysistest.target_under_test(env) 22*7594170eSAndroid Build Coastguard Worker 23*7594170eSAndroid Build Coastguard Worker asserts.true( 24*7594170eSAndroid Build Coastguard Worker env, 25*7594170eSAndroid Build Coastguard Worker java_common.BootClassPathInfo in bootclasspath_target, 26*7594170eSAndroid Build Coastguard Worker "Expected BootClassPathInfo in bootclasspath providers.", 27*7594170eSAndroid Build Coastguard Worker ) 28*7594170eSAndroid Build Coastguard Worker asserts.true( 29*7594170eSAndroid Build Coastguard Worker env, 30*7594170eSAndroid Build Coastguard Worker len(bootclasspath_target[java_common.BootClassPathInfo].bootclasspath.to_list()) == 1, 31*7594170eSAndroid Build Coastguard Worker "Expected bootclasspath to have 1 jars, got %s" % bootclasspath_target[java_common.BootClassPathInfo].bootclasspath, 32*7594170eSAndroid Build Coastguard Worker ) 33*7594170eSAndroid Build Coastguard Worker return analysistest.end(env) 34*7594170eSAndroid Build Coastguard Worker 35*7594170eSAndroid Build Coastguard Workerbootclasspath_test = analysistest.make( 36*7594170eSAndroid Build Coastguard Worker _bootclasspath_test_impl, 37*7594170eSAndroid Build Coastguard Worker) 38*7594170eSAndroid Build Coastguard Worker 39*7594170eSAndroid Build Coastguard Workerdef test_bootclasspath_provider(): 40*7594170eSAndroid Build Coastguard Worker name = "test_bootclasspath_provider" 41*7594170eSAndroid Build Coastguard Worker import_name = name + "_import" 42*7594170eSAndroid Build Coastguard Worker other_import_name = name + "_other_import" 43*7594170eSAndroid Build Coastguard Worker system_name = name + "_jsm" 44*7594170eSAndroid Build Coastguard Worker bootclasspath( 45*7594170eSAndroid Build Coastguard Worker name = name + "_target", 46*7594170eSAndroid Build Coastguard Worker bootclasspath = [import_name], 47*7594170eSAndroid Build Coastguard Worker system = system_name, 48*7594170eSAndroid Build Coastguard Worker auxiliary = [import_name], 49*7594170eSAndroid Build Coastguard Worker tags = ["manual"], 50*7594170eSAndroid Build Coastguard Worker ) 51*7594170eSAndroid Build Coastguard Worker bootclasspath_test( 52*7594170eSAndroid Build Coastguard Worker name = name, 53*7594170eSAndroid Build Coastguard Worker target_under_test = name + "_target", 54*7594170eSAndroid Build Coastguard Worker ) 55*7594170eSAndroid Build Coastguard Worker java_system_modules( 56*7594170eSAndroid Build Coastguard Worker name = system_name, 57*7594170eSAndroid Build Coastguard Worker deps = [other_import_name], 58*7594170eSAndroid Build Coastguard Worker tags = ["manual"], 59*7594170eSAndroid Build Coastguard Worker ) 60*7594170eSAndroid Build Coastguard Worker java_import( 61*7594170eSAndroid Build Coastguard Worker name = other_import_name, 62*7594170eSAndroid Build Coastguard Worker jars = ["a_jar.jar"], 63*7594170eSAndroid Build Coastguard Worker tags = ["manual"], 64*7594170eSAndroid Build Coastguard Worker ) 65*7594170eSAndroid Build Coastguard Worker java_import( 66*7594170eSAndroid Build Coastguard Worker name = import_name, 67*7594170eSAndroid Build Coastguard Worker jars = ["some_jar.jar"], 68*7594170eSAndroid Build Coastguard Worker tags = ["manual"], 69*7594170eSAndroid Build Coastguard Worker ) 70*7594170eSAndroid Build Coastguard Worker return name 71*7594170eSAndroid Build Coastguard Worker 72*7594170eSAndroid Build Coastguard Workerdef bootclasspath_test_suite(name): 73*7594170eSAndroid Build Coastguard Worker native.test_suite( 74*7594170eSAndroid Build Coastguard Worker name = name, 75*7594170eSAndroid Build Coastguard Worker tests = [ 76*7594170eSAndroid Build Coastguard Worker test_bootclasspath_provider(), 77*7594170eSAndroid Build Coastguard Worker ], 78*7594170eSAndroid Build Coastguard Worker ) 79