C++: Test that access to cc_internal is limited to builtins RELNOTES:none PiperOrigin-RevId: 404590661
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/StarlarkCcCommonTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/StarlarkCcCommonTest.java index e98b5b3..ea96571 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/StarlarkCcCommonTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/StarlarkCcCommonTest.java
@@ -7623,4 +7623,21 @@ ")"); invalidatePackages(); } + + @Test + public void testCcInternalIsNotAccessibleFromOutsideBuiltins() throws Exception { + scratch.file("a/BUILD", "load(':rule.bzl', 'crule')", "crule(name='r')"); + + scratch.file( + "a/rule.bzl", + "def _impl(ctx):", + " cc_internal", + " return DefaultInfo()", + "crule = rule(", + " _impl,", + ")"); + + AssertionError e = assertThrows(AssertionError.class, () -> getConfiguredTarget("//a:r")); + assertThat(e).hasMessageThat().contains("name 'cc_internal' is not defined"); + } }