1# Copyright 2022 Google LLC. All rights reserved. 2# 3# Licensed under the Apache License, Version 2.0 (the License); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14 15load("//kotlin:rules.bzl", "kt_jvm_library") 16load("//tests/analysis:for_test.bzl", "rules_for_test") 17load("//tests/analysis:jvm_library_test.bzl", "jvm_library_test") 18load("//tests/analysis:util.bzl", "ONLY_FOR_ANALYSIS_TEST_TAGS") 19 20package( 21 default_testonly = True, 22 default_visibility = ["//tests/analysis/jvm_library/friends:__subpackages__"], 23) 24 25licenses(["notice"]) 26 27jvm_library_test( 28 name = "no_kt_exported_friend_cross_package_test", 29 expected_friend_jar_names = [], 30 target_under_test = rules_for_test.kt_jvm_library( 31 name = "no_kt_exported_friend_cross_package", 32 srcs = ["Input.kt"], 33 deps = [ 34 # Exports :friend from this package 35 "//tests/analysis/jvm_library/friends/sub:kt_exports_friend", 36 ], 37 ), 38) 39 40jvm_library_test( 41 name = "has_java_exported_friend_in_package_test", 42 expected_friend_jar_names = [ 43 "libjava_exports_friend-hjar.jar", 44 "libfriend-compile.jar", 45 ], 46 target_under_test = rules_for_test.kt_jvm_library( 47 name = "has_java_exported_friend_in_package", 48 srcs = ["Input.kt"], 49 deps = [":java_exports_friend"], 50 ), 51) 52 53jvm_library_test( 54 name = "has_kt_exported_friend_in_package_test", 55 expected_friend_jar_names = [ 56 "libkt_exports_friend-compile.jar", 57 "libfriend-compile.jar", 58 ], 59 target_under_test = rules_for_test.kt_jvm_library( 60 name = "has_kt_exported_friend_in_package", 61 srcs = ["Input.kt"], 62 deps = [":kt_exports_friend"], 63 ), 64) 65 66jvm_library_test( 67 name = "no_direct_friend_testing_package_test", 68 expected_friend_jar_names = [], 69 target_under_test = rules_for_test.kt_jvm_library( 70 name = "no_direct_friend_testing_package", 71 srcs = ["Input.kt"], 72 deps = ["//tests/analysis/jvm_library/friends/testing:testingfriend"], 73 ), 74) 75 76jvm_library_test( 77 name = "no_direct_friend_subpackage_test", 78 expected_friend_jar_names = [], 79 target_under_test = rules_for_test.kt_jvm_library( 80 name = "no_direct_friend_subpackage", 81 srcs = ["Input.kt"], 82 deps = ["//tests/analysis/jvm_library/friends/sub:subfriend"], 83 ), 84) 85 86jvm_library_test( 87 name = "has_direct_friend_in_package_test", 88 expected_friend_jar_names = ["libfriend-compile.jar"], 89 target_under_test = rules_for_test.kt_jvm_library( 90 name = "has_direct_friend_in_package", 91 srcs = ["Input.kt"], 92 deps = [":friend"], 93 ), 94) 95 96java_library( 97 name = "java_exports_friend", 98 srcs = ["Input.java"], 99 tags = ONLY_FOR_ANALYSIS_TEST_TAGS, 100 exports = [":friend"], 101) 102 103kt_jvm_library( 104 name = "kt_exports_friend", 105 srcs = ["Input.kt"], 106 tags = ONLY_FOR_ANALYSIS_TEST_TAGS, 107 exports = [":friend"], 108) 109 110kt_jvm_library( 111 name = "friend", 112 srcs = ["Input.kt"], 113 tags = ONLY_FOR_ANALYSIS_TEST_TAGS, 114) 115