Add a test for `java_test` srcs file types (ignore-relnotes) PiperOrigin-RevId: 974989653 Change-Id: I8572bcca311c1fdf91f7361dd6c3f20bdce0d027
diff --git a/test/java/common/rules/java_test_tests.bzl b/test/java/common/rules/java_test_tests.bzl index 4109d2a..04674ee 100644 --- a/test/java/common/rules/java_test_tests.bzl +++ b/test/java/common/rules/java_test_tests.bzl
@@ -396,6 +396,72 @@ env.expect.that_collection(binary_action_mnemonics).contains("JavaOneVersion") env.expect.that_collection(test_action_mnemonics).not_contains("JavaOneVersion") +def _test_java_test_srcs_filetypes(name): + util.helper_target( + java_test, + name = name + "/valid", + srcs = [ + "a.java", + name + "/gmix", + name + "/gvalid", + ], + ) + util.helper_target( + java_test, + name = name + "/invalid", + srcs = [ + "a.foo", + name + "/ginvalid", + ], + ) + util.helper_target( + java_test, + name = name + "/mix", + srcs = [ + "a.foo", + "a.java", + ], + ) + util.helper_target( + native.genrule, + name = name + "/gvalid", + outs = [name + "/b.java"], + cmd = "", + ) + util.helper_target( + native.genrule, + name = name + "/ginvalid", + outs = [name + "/b.foo"], + cmd = "", + ) + util.helper_target( + native.genrule, + name = name + "/gmix", + outs = [name + "/c.java", name + "/c.foo"], + cmd = "", + ) + + analysis_test( + name = name, + impl = _test_java_test_srcs_filetypes_impl, + targets = { + "valid": name + "/valid", + "invalid": name + "/invalid", + "mix": name + "/mix", + }, + expect_failure = True, + ) + +def _test_java_test_srcs_filetypes_impl(env, targets): + env.expect.that_target(targets.valid).failures().contains_exactly([]) + env.expect.that_target(targets.invalid).failures().contains_at_least_predicates([ + matching.str_matches("'*/ginvalid' does not produce any java_test srcs files"), + matching.str_matches("source file '*:a.foo' is misplaced here"), + ]) + env.expect.that_target(targets.mix).failures().contains_at_least_predicates([ + matching.str_matches("'*:a.foo' does not produce any java_test srcs files"), + ]) + def java_test_tests(name): test_suite( name = name, @@ -409,5 +475,6 @@ _test_java_test_sets_securiry_manager_property_jdk17, _test_one_version_check_java_test, _test_one_version_check_disabled_for_java_test, + _test_java_test_srcs_filetypes, ], )