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", "analysistest", "asserts") 16*7594170eSAndroid Build Coastguard Workerload(":sdk_library.bzl", "JavaSdkLibraryInfo", "java_sdk_library") 17*7594170eSAndroid Build Coastguard Worker 18*7594170eSAndroid Build Coastguard Workerdef _basic_java_sdk_library_test_impl(ctx): 19*7594170eSAndroid Build Coastguard Worker env = analysistest.begin(ctx) 20*7594170eSAndroid Build Coastguard Worker java_sdk_library_target = analysistest.target_under_test(env) 21*7594170eSAndroid Build Coastguard Worker 22*7594170eSAndroid Build Coastguard Worker asserts.true( 23*7594170eSAndroid Build Coastguard Worker env, 24*7594170eSAndroid Build Coastguard Worker java_sdk_library_target[JavaSdkLibraryInfo].public.is_source, 25*7594170eSAndroid Build Coastguard Worker "Public api surface file should be source, not generated", 26*7594170eSAndroid Build Coastguard Worker ) 27*7594170eSAndroid Build Coastguard Worker 28*7594170eSAndroid Build Coastguard Worker asserts.equals( 29*7594170eSAndroid Build Coastguard Worker env, 30*7594170eSAndroid Build Coastguard Worker expected = "public.txt", 31*7594170eSAndroid Build Coastguard Worker actual = java_sdk_library_target[JavaSdkLibraryInfo].public.basename, 32*7594170eSAndroid Build Coastguard Worker msg = "Public api surface file not correct", 33*7594170eSAndroid Build Coastguard Worker ) 34*7594170eSAndroid Build Coastguard Worker 35*7594170eSAndroid Build Coastguard Worker asserts.true( 36*7594170eSAndroid Build Coastguard Worker env, 37*7594170eSAndroid Build Coastguard Worker java_sdk_library_target[JavaSdkLibraryInfo].system.is_source, 38*7594170eSAndroid Build Coastguard Worker "System api surface file should be source, not generated", 39*7594170eSAndroid Build Coastguard Worker ) 40*7594170eSAndroid Build Coastguard Worker 41*7594170eSAndroid Build Coastguard Worker asserts.equals( 42*7594170eSAndroid Build Coastguard Worker env, 43*7594170eSAndroid Build Coastguard Worker expected = "system.txt", 44*7594170eSAndroid Build Coastguard Worker actual = java_sdk_library_target[JavaSdkLibraryInfo].system.basename, 45*7594170eSAndroid Build Coastguard Worker msg = "System api surface file not correct", 46*7594170eSAndroid Build Coastguard Worker ) 47*7594170eSAndroid Build Coastguard Worker 48*7594170eSAndroid Build Coastguard Worker asserts.true( 49*7594170eSAndroid Build Coastguard Worker env, 50*7594170eSAndroid Build Coastguard Worker java_sdk_library_target[JavaSdkLibraryInfo].test.is_source, 51*7594170eSAndroid Build Coastguard Worker "Test api surface file should be source, not generated", 52*7594170eSAndroid Build Coastguard Worker ) 53*7594170eSAndroid Build Coastguard Worker 54*7594170eSAndroid Build Coastguard Worker asserts.equals( 55*7594170eSAndroid Build Coastguard Worker env, 56*7594170eSAndroid Build Coastguard Worker expected = "test.txt", 57*7594170eSAndroid Build Coastguard Worker actual = java_sdk_library_target[JavaSdkLibraryInfo].test.basename, 58*7594170eSAndroid Build Coastguard Worker msg = "Test api surface file not correct", 59*7594170eSAndroid Build Coastguard Worker ) 60*7594170eSAndroid Build Coastguard Worker 61*7594170eSAndroid Build Coastguard Worker asserts.true( 62*7594170eSAndroid Build Coastguard Worker env, 63*7594170eSAndroid Build Coastguard Worker java_sdk_library_target[JavaSdkLibraryInfo].module_lib.is_source, 64*7594170eSAndroid Build Coastguard Worker "Module_lib api surface file should be source, not generated", 65*7594170eSAndroid Build Coastguard Worker ) 66*7594170eSAndroid Build Coastguard Worker 67*7594170eSAndroid Build Coastguard Worker asserts.equals( 68*7594170eSAndroid Build Coastguard Worker env, 69*7594170eSAndroid Build Coastguard Worker expected = "module_lib.txt", 70*7594170eSAndroid Build Coastguard Worker actual = java_sdk_library_target[JavaSdkLibraryInfo].module_lib.basename, 71*7594170eSAndroid Build Coastguard Worker msg = "Module_lib api surface file not correct", 72*7594170eSAndroid Build Coastguard Worker ) 73*7594170eSAndroid Build Coastguard Worker 74*7594170eSAndroid Build Coastguard Worker asserts.true( 75*7594170eSAndroid Build Coastguard Worker env, 76*7594170eSAndroid Build Coastguard Worker java_sdk_library_target[JavaSdkLibraryInfo].system_server.is_source, 77*7594170eSAndroid Build Coastguard Worker "System_server api surface file should be source, not generated", 78*7594170eSAndroid Build Coastguard Worker ) 79*7594170eSAndroid Build Coastguard Worker 80*7594170eSAndroid Build Coastguard Worker asserts.equals( 81*7594170eSAndroid Build Coastguard Worker env, 82*7594170eSAndroid Build Coastguard Worker expected = "system_server.txt", 83*7594170eSAndroid Build Coastguard Worker actual = java_sdk_library_target[JavaSdkLibraryInfo].system_server.basename, 84*7594170eSAndroid Build Coastguard Worker msg = "System_server api surface file not correct", 85*7594170eSAndroid Build Coastguard Worker ) 86*7594170eSAndroid Build Coastguard Worker 87*7594170eSAndroid Build Coastguard Worker return analysistest.end(env) 88*7594170eSAndroid Build Coastguard Worker 89*7594170eSAndroid Build Coastguard Workerbasic_java_sdk_library_test = analysistest.make( 90*7594170eSAndroid Build Coastguard Worker _basic_java_sdk_library_test_impl, 91*7594170eSAndroid Build Coastguard Worker) 92*7594170eSAndroid Build Coastguard Worker 93*7594170eSAndroid Build Coastguard Workerdef test_checked_in_api_surface_files(): 94*7594170eSAndroid Build Coastguard Worker name = "checked_in_api_surface_files_test" 95*7594170eSAndroid Build Coastguard Worker java_sdk_library( 96*7594170eSAndroid Build Coastguard Worker name = name + "_target", 97*7594170eSAndroid Build Coastguard Worker public = "public.txt", 98*7594170eSAndroid Build Coastguard Worker system = "system.txt", 99*7594170eSAndroid Build Coastguard Worker test = "test.txt", 100*7594170eSAndroid Build Coastguard Worker module_lib = "module_lib.txt", 101*7594170eSAndroid Build Coastguard Worker system_server = "system_server.txt", 102*7594170eSAndroid Build Coastguard Worker ) 103*7594170eSAndroid Build Coastguard Worker basic_java_sdk_library_test( 104*7594170eSAndroid Build Coastguard Worker name = name, 105*7594170eSAndroid Build Coastguard Worker target_under_test = name + "_target", 106*7594170eSAndroid Build Coastguard Worker ) 107*7594170eSAndroid Build Coastguard Worker return name 108*7594170eSAndroid Build Coastguard Worker 109*7594170eSAndroid Build Coastguard Workerdef java_sdk_library_test_suite(name): 110*7594170eSAndroid Build Coastguard Worker native.test_suite( 111*7594170eSAndroid Build Coastguard Worker name = name, 112*7594170eSAndroid Build Coastguard Worker tests = [ 113*7594170eSAndroid Build Coastguard Worker test_checked_in_api_surface_files(), 114*7594170eSAndroid Build Coastguard Worker ], 115*7594170eSAndroid Build Coastguard Worker ) 116