aboutsummaryrefslogtreecommitdiff
path: root/tests/jvm/analysis/jvm_library/friends
diff options
context:
space:
mode:
Diffstat (limited to 'tests/jvm/analysis/jvm_library/friends')
-rw-r--r--tests/jvm/analysis/jvm_library/friends/BUILD110
-rw-r--r--tests/jvm/analysis/jvm_library/friends/Input.java19
-rw-r--r--tests/jvm/analysis/jvm_library/friends/Input.kt17
-rw-r--r--tests/jvm/analysis/jvm_library/friends/sub/BUILD58
-rw-r--r--tests/jvm/analysis/jvm_library/friends/sub/Input.kt17
-rw-r--r--tests/jvm/analysis/jvm_library/friends/testing/BUILD89
-rw-r--r--tests/jvm/analysis/jvm_library/friends/testing/Input.kt17
7 files changed, 327 insertions, 0 deletions
diff --git a/tests/jvm/analysis/jvm_library/friends/BUILD b/tests/jvm/analysis/jvm_library/friends/BUILD
new file mode 100644
index 0000000..f2454f4
--- /dev/null
+++ b/tests/jvm/analysis/jvm_library/friends/BUILD
@@ -0,0 +1,110 @@
+# Copyright 2022 Google LLC. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the License);
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+load("//kotlin/jvm/testing:for_analysis.bzl", ktfa = "kt_for_analysis")
+load("//kotlin/jvm/testing:jvm_library_analysis_test.bzl", "kt_jvm_library_analysis_test")
+
+package(
+ default_applicable_licenses = ["//:license"],
+ default_testonly = True,
+ default_visibility = ["//tests/jvm/analysis/jvm_library/friends:__subpackages__"],
+)
+
+licenses(["notice"])
+
+kt_jvm_library_analysis_test(
+ name = "no_kt_exported_friend_cross_package_test",
+ expected_friend_jar_names = [],
+ target_under_test = ktfa.kt_jvm_library(
+ name = "no_kt_exported_friend_cross_package",
+ srcs = ["Input.kt"],
+ deps = [
+ # Exports :friend from this package
+ "//tests/jvm/analysis/jvm_library/friends/sub:kt_exports_friend",
+ ],
+ ),
+)
+
+kt_jvm_library_analysis_test(
+ name = "has_java_exported_friend_in_package_test",
+ expected_friend_jar_names = [
+ "libjava_exports_friend-hjar.jar",
+ "libfriend-compile.jar",
+ ],
+ target_under_test = ktfa.kt_jvm_library(
+ name = "has_java_exported_friend_in_package",
+ srcs = ["Input.kt"],
+ deps = [":java_exports_friend"],
+ ),
+)
+
+kt_jvm_library_analysis_test(
+ name = "has_kt_exported_friend_in_package_test",
+ expected_friend_jar_names = [
+ "libkt_exports_friend-compile.jar",
+ "libfriend-compile.jar",
+ ],
+ target_under_test = ktfa.kt_jvm_library(
+ name = "has_kt_exported_friend_in_package",
+ srcs = ["Input.kt"],
+ deps = [":kt_exports_friend"],
+ ),
+)
+
+kt_jvm_library_analysis_test(
+ name = "no_direct_friend_testing_package_test",
+ expected_friend_jar_names = [],
+ target_under_test = ktfa.kt_jvm_library(
+ name = "no_direct_friend_testing_package",
+ srcs = ["Input.kt"],
+ deps = ["//tests/jvm/analysis/jvm_library/friends/testing:testingfriend"],
+ ),
+)
+
+kt_jvm_library_analysis_test(
+ name = "no_direct_friend_subpackage_test",
+ expected_friend_jar_names = [],
+ target_under_test = ktfa.kt_jvm_library(
+ name = "no_direct_friend_subpackage",
+ srcs = ["Input.kt"],
+ deps = ["//tests/jvm/analysis/jvm_library/friends/sub:subfriend"],
+ ),
+)
+
+kt_jvm_library_analysis_test(
+ name = "has_direct_friend_in_package_test",
+ expected_friend_jar_names = ["libfriend-compile.jar"],
+ target_under_test = ktfa.kt_jvm_library(
+ name = "has_direct_friend_in_package",
+ srcs = ["Input.kt"],
+ deps = [":friend"],
+ ),
+)
+
+ktfa.java_library(
+ name = "java_exports_friend",
+ srcs = ["Input.java"],
+ exports = [":friend"],
+)
+
+ktfa.kt_jvm_library(
+ name = "kt_exports_friend",
+ srcs = ["Input.kt"],
+ exports = [":friend"],
+)
+
+ktfa.kt_jvm_library(
+ name = "friend",
+ srcs = ["Input.kt"],
+)
diff --git a/tests/jvm/analysis/jvm_library/friends/Input.java b/tests/jvm/analysis/jvm_library/friends/Input.java
new file mode 100644
index 0000000..5bf1d18
--- /dev/null
+++ b/tests/jvm/analysis/jvm_library/friends/Input.java
@@ -0,0 +1,19 @@
+/*
+ * * Copyright 2022 Google LLC. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package test;
+
+final class Input {}
diff --git a/tests/jvm/analysis/jvm_library/friends/Input.kt b/tests/jvm/analysis/jvm_library/friends/Input.kt
new file mode 100644
index 0000000..b1a99cb
--- /dev/null
+++ b/tests/jvm/analysis/jvm_library/friends/Input.kt
@@ -0,0 +1,17 @@
+/*
+ * * Copyright 2022 Google LLC. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package test
diff --git a/tests/jvm/analysis/jvm_library/friends/sub/BUILD b/tests/jvm/analysis/jvm_library/friends/sub/BUILD
new file mode 100644
index 0000000..7f4a38e
--- /dev/null
+++ b/tests/jvm/analysis/jvm_library/friends/sub/BUILD
@@ -0,0 +1,58 @@
+# Copyright 2022 Google LLC. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the License);
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+load("//kotlin/jvm/testing:for_analysis.bzl", ktfa = "kt_for_analysis")
+load("//kotlin/jvm/testing:jvm_library_analysis_test.bzl", "kt_jvm_library_analysis_test")
+
+package(
+ default_applicable_licenses = ["//:license"],
+ default_testonly = True,
+ default_visibility = ["//tests/jvm/analysis/jvm_library/friends:__subpackages__"],
+)
+
+licenses(["notice"])
+
+kt_jvm_library_analysis_test(
+ name = "no_kt_exported_friend_cross_package_test",
+ expected_friend_jar_names = [
+ "libkt_exports_friend-compile.jar",
+ # Absent # "libfriend-compile.jar"
+ ],
+ target_under_test = ktfa.kt_jvm_library(
+ name = "no_kt_exported_friend_cross_package",
+ srcs = ["Input.kt"],
+ deps = [":kt_exports_friend"],
+ ),
+)
+
+kt_jvm_library_analysis_test(
+ name = "no_direct_friend_cross_package_test",
+ expected_friend_jar_names = [],
+ target_under_test = ktfa.kt_jvm_library(
+ name = "no_direct_friend_cross_package",
+ srcs = ["Input.kt"],
+ deps = ["//tests/jvm/analysis/jvm_library/friends:friend"],
+ ),
+)
+
+ktfa.kt_jvm_library(
+ name = "kt_exports_friend",
+ srcs = ["Input.kt"],
+ exports = ["//tests/jvm/analysis/jvm_library/friends:friend"],
+)
+
+ktfa.kt_jvm_library(
+ name = "subfriend",
+ srcs = ["Input.kt"],
+)
diff --git a/tests/jvm/analysis/jvm_library/friends/sub/Input.kt b/tests/jvm/analysis/jvm_library/friends/sub/Input.kt
new file mode 100644
index 0000000..4c87a1e
--- /dev/null
+++ b/tests/jvm/analysis/jvm_library/friends/sub/Input.kt
@@ -0,0 +1,17 @@
+/*
+ * * Copyright 2022 Google LLC. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package test.sub
diff --git a/tests/jvm/analysis/jvm_library/friends/testing/BUILD b/tests/jvm/analysis/jvm_library/friends/testing/BUILD
new file mode 100644
index 0000000..0ab1bba
--- /dev/null
+++ b/tests/jvm/analysis/jvm_library/friends/testing/BUILD
@@ -0,0 +1,89 @@
+# Copyright 2022 Google LLC. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the License);
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+load("//kotlin/jvm/testing:for_analysis.bzl", ktfa = "kt_for_analysis")
+load("//kotlin/jvm/testing:jvm_library_analysis_test.bzl", "kt_jvm_library_analysis_test")
+
+package(
+ default_applicable_licenses = ["//:license"],
+ default_testonly = True,
+ default_visibility = ["//tests/jvm/analysis/jvm_library/friends:__subpackages__"],
+)
+
+licenses(["notice"])
+
+kt_jvm_library_analysis_test(
+ name = "has_kt_exported_friend_impl_package_test",
+ expected_friend_jar_names = [
+ "libkt_exports_friend-compile.jar",
+ "libfriend-compile.jar",
+ ],
+ target_under_test = ktfa.kt_jvm_library(
+ name = "has_kt_exported_friend_impl_package",
+ srcs = ["Input.kt"],
+ deps = [":kt_exports_friend"],
+ ),
+)
+
+kt_jvm_library_analysis_test(
+ name = "has_direct_friend_impl_package_test",
+ expected_friend_jar_names = [
+ "libfriend-compile.jar",
+ ],
+ target_under_test = ktfa.kt_jvm_library(
+ name = "has_direct_friend_impl_package",
+ srcs = ["Input.kt"],
+ deps = ["//tests/jvm/analysis/jvm_library/friends:friend"],
+ ),
+)
+
+kt_jvm_library_analysis_test(
+ name = "no_kt_exported_friend_sibling_package_test",
+ expected_friend_jar_names = [
+ "libkt_exports_subfriend-compile.jar",
+ # Absent # "subfriend-compile.jar"
+ ],
+ target_under_test = ktfa.kt_jvm_library(
+ name = "no_kt_exported_friend_sibling_package",
+ srcs = ["Input.kt"],
+ deps = [":kt_exports_subfriend"],
+ ),
+)
+
+kt_jvm_library_analysis_test(
+ name = "no_direct_friend_sibling_package_test",
+ expected_friend_jar_names = [],
+ target_under_test = ktfa.kt_jvm_library(
+ name = "no_direct_friend_sibling_package",
+ srcs = ["Input.kt"],
+ deps = ["//tests/jvm/analysis/jvm_library/friends/sub:subfriend"],
+ ),
+)
+
+ktfa.kt_jvm_library(
+ name = "kt_exports_subfriend",
+ srcs = ["Input.kt"],
+ exports = ["//tests/jvm/analysis/jvm_library/friends/sub:subfriend"],
+)
+
+ktfa.kt_jvm_library(
+ name = "kt_exports_friend",
+ srcs = ["Input.kt"],
+ exports = ["//tests/jvm/analysis/jvm_library/friends:friend"],
+)
+
+ktfa.kt_jvm_library(
+ name = "testingfriend",
+ srcs = ["Input.kt"],
+)
diff --git a/tests/jvm/analysis/jvm_library/friends/testing/Input.kt b/tests/jvm/analysis/jvm_library/friends/testing/Input.kt
new file mode 100644
index 0000000..2c65124
--- /dev/null
+++ b/tests/jvm/analysis/jvm_library/friends/testing/Input.kt
@@ -0,0 +1,17 @@
+/*
+ * * Copyright 2022 Google LLC. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package test.testing