aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test
diff options
context:
space:
mode:
authorGravatar elenairina <elenairina@google.com>2017-09-06 12:17:58 +0200
committerGravatar Irina Iancu <elenairina@google.com>2017-09-06 12:25:35 +0200
commit3da30befb83121f5c4ff14eb7c0114b5f6b5c36c (patch)
tree0b9dae06c429b59d272ff9c645c4009674d6af7e /src/test
parentcd1ae23c72a206461c4c8b431dd2484727fb2afc (diff)
Add java_common.build_ijar.
PiperOrigin-RevId: 167699728
Diffstat (limited to 'src/test')
-rwxr-xr-xsrc/test/shell/bazel/bazel_java_test.sh60
1 files changed, 60 insertions, 0 deletions
diff --git a/src/test/shell/bazel/bazel_java_test.sh b/src/test/shell/bazel/bazel_java_test.sh
index de7aacc0af..db6fc54ece 100755
--- a/src/test/shell/bazel/bazel_java_test.sh
+++ b/src/test/shell/bazel/bazel_java_test.sh
@@ -1239,5 +1239,65 @@ EOF
expect_log "Using type com.google.sandwich.C from an indirect dependency"
}
+function test_java_common_build_ijar() {
+ mkdir -p java/com/google/foo
+ touch java/com/google/foo/{BUILD,A.java,my_rule.bzl}
+ cat > java/com/google/foo/A.java << EOF
+package com.google.foo;
+class A {}
+EOF
+ cat > java/com/google/foo/BUILD << EOF
+load(":my_rule.bzl", "my_rule")
+java_library(name = "a", srcs = ["A.java"])
+my_rule(name = "banana", jar = "liba.jar")
+EOF
+
+ cat > java/com/google/foo/my_rule.bzl << EOF
+def _impl(ctx):
+ ijar = java_common.build_ijar(ctx, ctx.files.jar[0], ctx.attr._java_toolchain)
+ print(ijar.path)
+ return DefaultInfo(files = depset([ijar]))
+
+my_rule = rule(
+ implementation = _impl,
+ attrs = {
+ "jar": attr.label(allow_files=True),
+ "_java_toolchain": attr.label(default = Label("@bazel_tools//tools/jdk:toolchain")),
+ }
+)
+EOF
+ bazel build java/com/google/foo:banana >& "$TEST_log" || fail "Unexpected fail"
+ expect_log "liba-ijar.jar"
+ unzip -l bazel-genfiles/java/com/google/foo/_ijar/banana/java/com/google/foo/liba-ijar.jar >> "$TEST_log"
+ expect_log "00:00 com/google/foo/A.class"
+}
+
+function test_java_common_create_empty_ijars() {
+ mkdir -p java/com/google/foo
+ touch java/com/google/foo/{BUILD,a.jar,my_rule.bzl}
+ cat > java/com/google/foo/BUILD << EOF
+load(":my_rule.bzl", "my_rule")
+exports_files(["a.jar"])
+my_rule(name = "banana", jar = "a.jar")
+EOF
+
+ cat > java/com/google/foo/my_rule.bzl << EOF
+def _impl(ctx):
+ ijar = java_common.build_ijar(ctx, ctx.files.jar[0], ctx.attr._java_toolchain)
+ print(ijar.path)
+ return DefaultInfo(files = depset([ijar]))
+
+my_rule = rule(
+ implementation = _impl,
+ attrs = {
+ "jar": attr.label(allow_files=True),
+ "_java_toolchain": attr.label(default = Label("@bazel_tools//tools/jdk:toolchain")),
+ }
+)
+EOF
+ bazel build java/com/google/foo:banana >& "$TEST_log" && fail "Unexpected success"
+ expect_log "Unable to open Zip file java/com/google/foo/a.jar: Invalid argument"
+}
+
run_suite "Java integration tests"