blob: c30f9393bdad4972e54d34cf1c388b031f3db642 [file] [log] [blame]
package(default_visibility = ["//visibility:__pkg__"])
licenses(["notice"]) # Apache License 2.0
exports_files(["LICENSE"])
sh_test(
name = "ijar_test",
size = "enormous",
srcs = ["ijar_test.sh"],
args = [
"$(JAVABASE)/bin/javac",
"$(JAVABASE)/bin/java",
"$(JAVABASE)/bin/jar",
"$(JAVABASE)/bin/javap",
"$(location //third_party/ijar)",
"$(location //tools/jdk:langtools)",
# We assume unzip and zip to be on the path
"unzip",
"zip",
"$(location :zip_count)",
],
data = [
"testenv.sh",
"//src/test/shell:bashunit",
"//third_party/ijar",
"A.java",
"B.java",
"Object.java",
"WellCompressed1.java",
"WellCompressed2.java",
":libtypeannotations2.jar",
":libmethodparameters.jar",
# This is a precompiled .jar file because it needs to be compiled with JDK 11.
# TODO(cushon): build from source once we have a JDK 11
"nestmates/nestmates.jar",
":source_debug_extension.jar",
":largest_regular.jar",
":smallest_zip64.jar",
":definitely_zip64.jar",
":zip_count",
"TypeAnnotationTest2.java",
":libinvokedynamic.jar",
# Intentionally bad test JAR: file count in central directory
# wrong.
"libwrongcentraldir.jar",
"@bazel_tools//tools/jdk:current_java_runtime",
"//tools/jdk:langtools",
],
shard_count = 5,
tags = ["zip"],
toolchains = [
"@bazel_tools//tools/jdk:current_java_runtime",
],
)
sh_test(
name = "zip_test",
size = "large",
srcs = ["zip_test.sh"],
args = [
"$(location //third_party/ijar:zipper)",
# We assume unzip and zip to be on the path
"unzip",
"zip",
],
data = [
"testenv.sh",
"//src/test/shell:bashunit",
"//third_party/ijar:zipper",
],
tags = ["zip"],
)
java_library(
name = "invokedynamic",
testonly = 1,
srcs = ["invokedynamic/ClassWithLambda.java"],
)
# For testing purposes: a class which exposes a private nested class in
# public API, classes with annotations and a class with different forms of
# deprecations markers
java_library(
name = "ijar_testlib",
srcs = [
"AnnotatedClass.java",
"Annotations.java",
"DeprecatedParts.java",
"DumbClass.java",
"EnclosingMethod.java",
"PrivateMembersClass.java",
],
)
# For testing purposes: an interface jar (ijar) which includes the
# interface view of the various test class from above.
genrule(
name = "interface_ijar_testlib",
srcs = [":ijar_testlib"],
outs = ["interface_ijar_testlib.jar"],
cmd = "$(location //third_party/ijar) $< $@",
tools = ["//third_party/ijar"],
)
genrule(
name = "interface_ijar_testlib_with_target_label",
srcs = [":ijar_testlib"],
outs = ["interface_ijar_testlib_with_target_label.jar"],
cmd = "$(location //third_party/ijar) --target_label //foo:foo --injecting_rule_kind foo_library $< $@",
tools = ["//third_party/ijar"],
)
genrule(
name = "interface_ijar_testlib_nostrip",
srcs = [":ijar_testlib"],
outs = ["interface_ijar_testlib_nostrip.jar"],
cmd = "$(location //third_party/ijar) --target_label //foo:foo --nostrip_jar $< $@",
tools = ["//third_party/ijar"],
)
genrule(
name = "jar_with_manifest_nostrip",
srcs = ["jar-with-manifest.jar"],
outs = ["jar-with-manifest-nostrip.jar"],
cmd = "$(location //third_party/ijar) --target_label //foo:foo --nostrip_jar $< $@",
tools = ["//third_party/ijar"],
)
genrule(
name = "jar_with_manifest_and_target_label_nostrip",
srcs = ["jar-with-manifest-and-target-label.jar"],
outs = ["jar-with-manifest-and-target-label-nostrip.jar"],
cmd = "$(location //third_party/ijar) --target_label //foo:foo --nostrip_jar $< $@",
tools = ["//third_party/ijar"],
)
genrule(
name = "jar_without_manifest_nostrip",
srcs = ["jar-without-manifest.jar"],
outs = ["jar-without-manifest-nostrip.jar"],
cmd = "$(location //third_party/ijar) --target_label //foo:foo --nostrip_jar $< $@",
tools = ["//third_party/ijar"],
)
genrule(
name = "jar_without_manifest_nostrip_idempotence",
srcs = ["jar-without-manifest-nostrip.jar"],
outs = ["jar-without-manifest-nostrip-idempotence.jar"],
cmd = "$(location //third_party/ijar) --target_label //foo:foo --nostrip_jar $< $@",
tools = ["//third_party/ijar"],
)
genrule(
name = "empty_with_target_label",
srcs = [":empty_zip.jar"],
outs = ["empty_with_target_label.jar"],
cmd = "$(location //third_party/ijar) $< $@ --target_label //empty",
tools = ["//third_party/ijar"],
)
java_library(
name = "typeannotations2",
srcs = glob(["typeannotations2/**/*.java"]),
)
java_library(
name = "methodparameters",
srcs = ["methodparameters/Test.java"],
javacopts = ["-parameters"],
)
java_binary(
name = "gen_source_debug_extension",
srcs = ["GenSourceDebugExtension.java"],
main_class = "test.GenSourceDebugExtension",
deps = ["//third_party:asm"],
)
genrule(
name = "gen_source_debug_extension_jar",
srcs = [],
outs = ["source_debug_extension.jar"],
cmd = "$(location :gen_source_debug_extension) $@",
tools = ["gen_source_debug_extension"],
)
java_library(
name = "local_and_anonymous_lib",
srcs = ["LocalAndAnonymous.java"],
)
genrule(
name = "local_and_anonymous_interface",
srcs = [":liblocal_and_anonymous_lib.jar"],
outs = ["local_and_anonymous-interface.jar"],
cmd = "$(location //third_party/ijar) $< $@",
tools = ["//third_party/ijar"],
)
java_binary(
name = "GenModuleInfo",
testonly = 1,
srcs = ["GenModuleInfo.java"],
main_class = "GenModuleInfo",
deps = ["//third_party:guava"],
)
genrule(
name = "module_info",
testonly = 1,
outs = ["module_info.jar"],
cmd = "$(location :GenModuleInfo) $@",
tools = [":GenModuleInfo"],
)
genrule(
name = "module_info_interface",
testonly = 1,
srcs = [":module_info.jar"],
outs = ["module_info-interface.jar"],
cmd = "$(location //third_party/ijar) $< $@",
tools = ["//third_party/ijar"],
)
java_binary(
name = "GenKotlinModule",
testonly = 1,
srcs = ["GenKotlinModule.java"],
main_class = "GenKotlinModule",
deps = ["//third_party:guava"],
)
genrule(
name = "kotlin_module",
testonly = 1,
outs = ["kotlin_module.jar"],
cmd = "$(location :GenKotlinModule) $@",
tools = [":GenKotlinModule"],
)
genrule(
name = "kotlin_module_interface",
testonly = 1,
srcs = [":kotlin_module.jar"],
outs = ["kotlin_module-interface.jar"],
cmd = "$(location //third_party/ijar) $< $@",
tools = ["//third_party/ijar"],
)
java_test(
name = "IjarTests",
size = "small",
srcs = [
"IjarTests.java",
"StripVerifyingVisitor.java",
],
data = [
"PrivateNestedClass.java",
"UseDeprecatedParts.java",
"UseRestrictedAnnotation.java",
"jar-with-manifest.jar",
"jar-with-manifest-and-target-label.jar",
"jar-without-manifest.jar",
"package-info.java",
":empty_with_target_label",
":ijar_testlib",
":interface_ijar_testlib",
":interface_ijar_testlib_nostrip",
":interface_ijar_testlib_with_target_label",
":jar_with_manifest_and_target_label_nostrip",
":jar_with_manifest_nostrip",
":jar_without_manifest_nostrip",
":jar_without_manifest_nostrip_idempotence",
":kotlin_module-interface.jar",
":liblocal_and_anonymous_lib.jar",
":local_and_anonymous-interface.jar",
":module_info-interface.jar",
],
tags = ["zip"],
test_class = "IjarTests",
deps = [
"//src/java_tools/buildjar:BazelJavaCompiler",
"//third_party:asm",
"//third_party:guava",
"//third_party:junit4",
"//third_party:truth",
],
)
test_suite(
name = "all_tests",
testonly = 1,
visibility = ["//visibility:public"],
)
java_binary(
name = "gen_zip_with_entries",
srcs = ["GenZipWithEntries.java"],
jvm_flags = ["-Djdk.util.zip.inhibitZip64=false"],
main_class = "test.GenZipWithEntries",
deps = ["//third_party:asm"],
)
[
genrule(
name = name,
outs = [name + ".jar"],
cmd = "$(location :gen_zip_with_entries) %s $@" % entries,
tools = [":gen_zip_with_entries"],
)
for name, entries in [
("largest_regular", 65535),
("smallest_zip64", 65536),
("definitely_zip64", 70000),
("empty_zip", 1),
]
]
java_binary(
name = "zip_count",
srcs = ["ZipCount.java"],
jvm_flags = ["-Djdk.util.zip.inhibitZip64=false"],
main_class = "test.ZipCount",
)
filegroup(
name = "srcs",
srcs = glob(["**"]),
visibility = ["//third_party/ijar:__pkg__"],
)