diff options
author | 2017-09-06 12:17:58 +0200 | |
---|---|---|
committer | 2017-09-06 12:25:35 +0200 | |
commit | 3da30befb83121f5c4ff14eb7c0114b5f6b5c36c (patch) | |
tree | 0b9dae06c429b59d272ff9c645c4009674d6af7e /src/test | |
parent | cd1ae23c72a206461c4c8b431dd2484727fb2afc (diff) |
Add java_common.build_ijar.
PiperOrigin-RevId: 167699728
Diffstat (limited to 'src/test')
-rwxr-xr-x | src/test/shell/bazel/bazel_java_test.sh | 60 |
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" |