| """Tests for the Bazel java_binary rule""" |
| |
| load("@rules_testing//lib:analysis_test.bzl", "analysis_test", "test_suite") |
| load("@rules_testing//lib:util.bzl", "util") |
| load("//java:java_plugin.bzl", "java_plugin") |
| load("//test/java/testutil:rules/template_var_info_rule.bzl", "template_var_info_rule") |
| |
| def _test_java_plugin_javacopts_make_variable_expansion(name): |
| util.helper_target( |
| template_var_info_rule, |
| name = name + "/vars", |
| vars = { |
| "MY_CUSTOM_OPT": "MY_OPT_VALUE", |
| }, |
| ) |
| util.helper_target( |
| java_plugin, |
| name = name + "/plug", |
| srcs = ["java/A.java"], |
| javacopts = ["$(MY_CUSTOM_OPT)"], |
| toolchains = [name + "/vars"], |
| ) |
| |
| analysis_test( |
| name = name, |
| impl = _test_java_plugin_javacopts_make_variable_expansion_impl, |
| target = name + "/plug", |
| # Broken by Starlarkification in the embedded rules in Bazel 7 |
| attr_values = {"tags": ["min_bazel_8"]}, |
| ) |
| |
| def _test_java_plugin_javacopts_make_variable_expansion_impl(env, target): |
| assert_javac = env.expect.that_target(target).action_named("Javac") |
| assert_javac.not_contains_arg("$(MY_CUSTOM_OPT)") |
| assert_javac.contains_at_least_args(["MY_OPT_VALUE"]) |
| |
| def java_plugin_tests(name): |
| test_suite( |
| name = name, |
| tests = [ |
| _test_java_plugin_javacopts_make_variable_expansion, |
| ], |
| ) |