blob: 7b917f26df58cface7e5b9a079702110384daab2 [file] [log] [blame]
load("@aspect_bazel_lib//lib:diff_test.bzl", "diff_test")
load("@rules_java//java:java_library.bzl", "java_library")
load("//:defs.bzl", "artifact")
load(":is_bzlmod_enabled.bzl", "is_bzlmod_enabled")
genquery(
name = "testonly-deps",
testonly = True,
expression = "attr(testonly, 1, deps(@testonly_testing//:all, 0))",
scope = [
"@testonly_testing//:org_codehaus_mojo_animal_sniffer_annotations_1_17",
"@testonly_testing//:org_checkerframework_checker_qual_2_5_2",
"@testonly_testing//:com_google_j2objc_j2objc_annotations_1_1",
"@testonly_testing//:com_google_guava_listenablefuture_9999_0_empty_to_avoid_conflict_with_guava",
"@testonly_testing//:com_google_guava_guava_27_0_jre",
"@testonly_testing//:com_google_guava_guava",
"@testonly_testing//:org_codehaus_mojo_animal_sniffer_annotations",
"@testonly_testing//:org_checkerframework_checker_qual",
"@testonly_testing//:com_google_j2objc_j2objc_annotations",
"@testonly_testing//:com_google_guava_listenablefuture",
"@testonly_testing//:com_google_guava_failureaccess_1_0",
"@testonly_testing//:com_google_guava_failureaccess",
"@testonly_testing//:com_google_errorprone_error_prone_annotations_2_2_0",
"@testonly_testing//:com_google_errorprone_error_prone_annotations",
"@testonly_testing//:com_google_code_findbugs_jsr305_3_0_2",
"@testonly_testing//:com_google_code_findbugs_jsr305",
"@testonly_testing//:com_google_auto_value_auto_value_annotations_1_6_3",
"@testonly_testing//:com_google_auto_value_auto_value_annotations",
"@testonly_testing//:defs",
"@testonly_testing//:direct_deps",
"@testonly_testing//:outdated",
"@testonly_testing//:pin",
],
)
genrule(
name = "testonly-deps-sorted",
testonly = 1,
srcs = [":testonly-deps"],
outs = ["testonly-deps-sorted.txt"],
cmd = "cat $< | sed -e 's|^@@|@|g; s|\r||g' | sed -e 's|^@[^/]*[+~]|@|g; s|\r||g' | sort > $@",
)
diff_test(
name = "testonly_artifacts_test",
file1 = "testonly-deps.golden.unix",
file2 = ":testonly-deps-sorted",
)
# https://github.com/coursier/coursier/issues/1792
# https://github.com/bazelbuild/rules_jvm_external/issues/433
genquery(
name = "version_interval_deps",
testonly = True,
expression = "deps(@version_interval_testing//:io_grpc_grpc_netty_shaded, 2)",
opts = [
"--nohost_deps",
"--noimplicit_deps",
],
scope = ["@version_interval_testing//:io_grpc_grpc_netty_shaded"],
)
genrule(
name = "version-interval-deps-sorted",
testonly = 1,
srcs = [":version_interval_deps"],
outs = ["version-interval-deps-sorted.txt"],
cmd = "cat $< | sed -e 's|^@@|@|g; s|\r||g' | sed -e 's|^@[^/]*[+~]|@|g; s|\r||g' | sort > $@",
)
diff_test(
name = "version_interval_deps_test",
file1 = "version-interval-deps.golden.unix",
file2 = ":version-interval-deps-sorted.txt",
)
genquery(
name = "forced-versions-deps",
expression = "deps(@forcing_versions//:xyz_rogfam_littleproxy)",
opts = [
"--nohost_deps",
"--noimplicit_deps",
],
scope = ["@forcing_versions//:xyz_rogfam_littleproxy"],
)
genrule(
name = "forced-versions-deps-sorted",
testonly = 1,
srcs = [":forced-versions-deps"],
outs = ["forced-versions-deps-sorted.txt"],
cmd = "cat $< | sed -e 's|^@@|@|g; s|\r||g' | sed -e 's|^@[^/]*[+~]|@|g; s|\r||g' | sort > $@",
)
diff_test(
name = "forced-version-deps-test",
file1 = "forced-versions-deps.golden.unix",
file2 = ":forced-versions-deps-sorted.txt",
)
genquery(
name = "root-wins-deps",
expression = "deps(@root_wins//:io_netty_netty_buffer)",
opts = [
"--nohost_deps",
"--noimplicit_deps",
],
scope = ["@root_wins//:io_netty_netty_buffer"],
)
genrule(
name = "root-wins-deps-sorted",
testonly = 1,
srcs = [":root-wins-deps"],
outs = ["root-wins-deps-sorted.txt"],
cmd = "cat $< | grep root_wins | sed -e 's|^@@|@|g; s|\r||g' | sed -e 's|^@[^/]*[+~]|@|g; s|\r||g' | sort > $@",
)
# If the root module doesn't win, the version of `netty-buffer` will be `4.1.110.Final`
diff_test(
name = "root-wins-deps-test",
file1 = "root-wins-deps.golden.unix",
file2 = ":root-wins-deps-sorted.txt",
# This test only makes sense if we're running with `bzlmod` enabled
tags = [] if is_bzlmod_enabled() else ["manual"],
)
# This target will fail to build if we're not handling merging of maven.install
# tags properly, and if we don't handle multiple lock files properly.
java_library(
name = "demonstrate_multiple_lock_files_are_okay",
exports = [
# Dependency from our own `MODULE.bazel
artifact(
"org.zeromq:jeromq",
repository_name = "multiple_lock_files",
),
artifact(
"redis.clients:jedis",
repository_name = "multiple_lock_files",
),
],
)
genquery(
name = "import-from-file-query",
expression = "@from_files//:org_junit_jupiter_junit_jupiter_api",
opts = [
"--output=build",
],
scope = ["@from_files//:org_junit_jupiter_junit_jupiter_api"],
)
genrule(
name = "import-from-file-extract",
srcs = [":import-from-file-query"],
outs = ["import-from-file-extract.txt"],
cmd = "cat $< | grep testonly >$@",
)
diff_test(
name = "import-from-file",
file1 = "import-from-file.unix",
file2 = ":import-from-file-extract",
# This test only makes sense if we're running with `bzlmod` enabled
tags = [] if is_bzlmod_enabled() else ["manual"],
)
# Depend on something from the maven-resolved repo to ensure that things like the
# artifacts hash is consistent
genquery(
name = "maven-resolved-is-ok",
testonly = True,
expression = "deps(@maven_resolved_with_boms//:org_seleniumhq_selenium_selenium_java)",
opts = [
"--nohost_deps",
"--noimplicit_deps",
],
scope = ["@maven_resolved_with_boms//:org_seleniumhq_selenium_selenium_java"],
deps = [],
)