Add tests for querying buildfiles() of a target whose package loads a bzl file whose own package cannot be loaded. The case of the bzl file's package having a missing bzl file was not properly handled by https://github.com/bazelbuild/bazel/commit/23f171e2208700dc2f2f65f5ccb32bacd7aec87d. Strangely, when the package has bad syntax, we are able to construct the package, and so that test was already ok. PiperOrigin-RevId: 389897386
diff --git a/src/test/java/com/google/devtools/build/lib/query2/testutil/AbstractQueryTest.java b/src/test/java/com/google/devtools/build/lib/query2/testutil/AbstractQueryTest.java index c106406..bdaa988 100644 --- a/src/test/java/com/google/devtools/build/lib/query2/testutil/AbstractQueryTest.java +++ b/src/test/java/com/google/devtools/build/lib/query2/testutil/AbstractQueryTest.java
@@ -1780,6 +1780,24 @@ } @Test + public void bzlPackageBadDueToBrokenLoad() throws Exception { + writeFile("foo/BUILD", "load('//bar:bar.bzl', 'sym')"); + writeFile("bar/BUILD", "load('//noexist:noexist.bzl', 'bad')"); + writeFile("bar/bar.bzl", "sym = 0"); + assertThat(evalToListOfStrings("buildfiles(//foo:BUILD)")) + .containsExactly("//foo:BUILD", "//bar:bar.bzl", "//bar:BUILD"); + } + + @Test + public void bzlPackageBadDueToBrokenSyntax() throws Exception { + writeFile("foo/BUILD", "load('//bar:bar.bzl', 'sym')"); + writeFile("bar/BUILD", "malformed syntax"); + writeFile("bar/bar.bzl", "sym = 0"); + assertThat(evalToListOfStrings("buildfiles(//foo:BUILD)")) + .containsExactly("//foo:BUILD", "//bar:bar.bzl", "//bar:BUILD"); + } + + @Test public void testTargetsFromBuildfilesAndRealTargets() throws Exception { writeFile( "foo/BUILD", "load('//baz:baz.bzl', 'x')", "sh_library(name = 'foo', deps = ['//baz'])"); @@ -2122,4 +2140,3 @@ String getLabel(T target); } } -
diff --git a/src/test/java/com/google/devtools/build/lib/query2/testutil/PostAnalysisQueryTest.java b/src/test/java/com/google/devtools/build/lib/query2/testutil/PostAnalysisQueryTest.java index e658f48..24c22b5 100644 --- a/src/test/java/com/google/devtools/build/lib/query2/testutil/PostAnalysisQueryTest.java +++ b/src/test/java/com/google/devtools/build/lib/query2/testutil/PostAnalysisQueryTest.java
@@ -724,6 +724,12 @@ public void testBuildfilesWithDuplicates() {} @Override + public void bzlPackageBadDueToBrokenLoad() {} + + @Override + public void bzlPackageBadDueToBrokenSyntax() {} + + @Override public void testTargetsFromBuildfilesAndRealTargets() {} // siblings() operator.