diff options
author | 2018-04-24 10:54:24 -0700 | |
---|---|---|
committer | 2018-04-24 10:55:39 -0700 | |
commit | 177e5912b578f2261124578061a6eab7b6afa7f2 (patch) | |
tree | d78c0001bb216c612380bfa0f3423f0c642bb908 /src/test/shell | |
parent | d1af4306095545151b1c062e5544f80496ceb5eb (diff) |
Add new-style JavaInfo provider constructor.
Design: https://docs.google.com/document/d/1ubah6phuvWnugShtVgSQnaopQ1BtKtNxQASVwGZA7k0/
* Moves action construction out into java_common.run_ijar, java_common.pack_sources
* Deprecates corresponding arguments in JavaInfo
An incompatible flag will be added in another CL since it is not possible to add incompatible flags at the same time as new functionality is added.
RELNOTES: Adds new-style JavaInfo provider constructor.
PiperOrigin-RevId: 194111925
Diffstat (limited to 'src/test/shell')
-rwxr-xr-x | src/test/shell/bazel/bazel_java_test.sh | 53 |
1 files changed, 51 insertions, 2 deletions
diff --git a/src/test/shell/bazel/bazel_java_test.sh b/src/test/shell/bazel/bazel_java_test.sh index 87ff1fe81a..5daa75c7b8 100755 --- a/src/test/shell/bazel/bazel_java_test.sh +++ b/src/test/shell/bazel/bazel_java_test.sh @@ -1430,7 +1430,7 @@ my_rule = rule( EOF bazel build java/com/google/foo:banana >& "$TEST_log" && fail "Unexpected success" - expect_log "The value of use_ijar is True. Make sure the java_toolchain argument is a valid." + expect_log "The value of use_ijar is True. Make sure the java_toolchain argument is valid." } @@ -1467,7 +1467,7 @@ my_rule = rule( EOF bazel build java/com/google/foo:my_skylark_rule >& "$TEST_log" && fail "Unexpected success" - expect_log "The value of use_ijar is True. Make sure the java_toolchain argument is a valid." + expect_log "The value of use_ijar is True. Make sure the java_toolchain argument is valid." } @@ -1560,4 +1560,53 @@ EOF bazel test --spawn_strategy=standalone --test_output=errors :check_runfiles } +function test_java_info_constructor_e2e() { + mkdir -p java/com/google/foo + touch java/com/google/foo/{BUILD,my_rule.bzl} + cat > java/com/google/foo/BUILD << EOF +load(":my_rule.bzl", "my_rule") +my_rule( + name = 'my_skylark_rule', + output_jar = 'my_skylark_rule_lib.jar', + source_jars = ['my_skylark_rule_src.jar'], +) +EOF + + cat > java/com/google/foo/my_rule.bzl << EOF +result = provider() +def _impl(ctx): + compile_jar = java_common.run_ijar( + ctx.actions, + jar = ctx.file.output_jar, + target_label = ctx.label, + java_toolchain = ctx.attr._java_toolchain, + ) + source_jar = java_common.pack_sources( + ctx.actions, + output_jar = ctx.file.output_jar, + source_jars = ctx.files.source_jars, + java_toolchain = ctx.attr._java_toolchain, + host_javabase = ctx.attr._host_javabase, + ) + javaInfo = JavaInfo( + output_jar = ctx.file.output_jar, + compile_jar = compile_jar, + source_jar = source_jar, + ) + return [result(property = javaInfo)] + +my_rule = rule( + implementation = _impl, + attrs = { + 'output_jar' : attr.label(allow_single_file=True), + 'source_jars' : attr.label_list(allow_files=['.jar']), + "_java_toolchain": attr.label(default = Label("@bazel_tools//tools/jdk:toolchain")), + "_host_javabase": attr.label(default = Label("@bazel_tools//tools/jdk:current_host_java_runtime")) + } +) +EOF + + bazel build java/com/google/foo:my_skylark_rule >& "$TEST_log" || fail "Expected success" +} + run_suite "Java integration tests" |