aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/shell
diff options
context:
space:
mode:
authorGravatar tomlu <tomlu@google.com>2018-04-24 10:54:24 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-04-24 10:55:39 -0700
commit177e5912b578f2261124578061a6eab7b6afa7f2 (patch)
treed78c0001bb216c612380bfa0f3423f0c642bb908 /src/test/shell
parentd1af4306095545151b1c062e5544f80496ceb5eb (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-xsrc/test/shell/bazel/bazel_java_test.sh53
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"