Expose Javac command lines in aspects
See https://github.com/bazelbuild/bazel/commit/e7ce105c900ae10163e9f5ab26dce01eb7293a60 for more details.
RELNOTES: None.
PiperOrigin-RevId: 319265926
diff --git a/src/test/shell/integration/java_integration_test.sh b/src/test/shell/integration/java_integration_test.sh
index 68684a9..c6d0df7 100755
--- a/src/test/shell/integration/java_integration_test.sh
+++ b/src/test/shell/integration/java_integration_test.sh
@@ -850,4 +850,40 @@
expect_log "Hello World!"
}
+
+function test_arg_compile_action() {
+ local package="${FUNCNAME[0]}"
+ mkdir -p "${package}"
+
+ cat > "${package}/lib.bzl" <<EOF
+def _actions_test_impl(target, ctx):
+ action = target.actions[0] # digest action
+ if action.mnemonic != "Javac":
+ fail("Expected the first action to be Javac.")
+ aspect_out = ctx.actions.declare_file('aspect_out')
+ ctx.actions.run_shell(inputs = action.inputs,
+ outputs = [aspect_out],
+ command = "echo \$@ > " + aspect_out.path,
+ arguments = action.args)
+ return [OutputGroupInfo(out=[aspect_out])]
+
+actions_test_aspect = aspect(implementation = _actions_test_impl)
+EOF
+
+ touch "${package}/x.java"
+ cat > "${package}/BUILD" <<EOF
+java_library(
+ name = "x",
+ srcs = ["x.java"],
+)
+EOF
+
+ bazel build "${package}:x" \
+ --aspects="//${package}:lib.bzl%actions_test_aspect" \
+ --output_groups=out --experimental_action_args
+
+ cat "${PRODUCT_NAME}-bin/${package}/aspect_out" | grep "0.params .*1.params" \
+ || fail "aspect Args do not contain both params files"
+}
+
run_suite "Java integration tests"