Improve slightly the error message for files not found.
Before:
Unable to load file '//test:b.bzl': file doesn't exist or isn't a file
After:
Unable to load file '//test:b.bzl': file doesn't exist
#6004
RELNOTES: None.
PiperOrigin-RevId: 217512790
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/PackageFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/PackageFunctionTest.java
index 8934cc7..3a8827c 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/PackageFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/PackageFunctionTest.java
@@ -71,8 +71,8 @@
import org.junit.runners.JUnit4;
/**
- * Unit tests of specific functionality of PackageFunction. Note that it's already tested
- * indirectly in several other places.
+ * Unit tests of specific functionality of PackageFunction. Note that it's already tested indirectly
+ * in several other places.
*/
@RunWith(JUnit4.class)
public class PackageFunctionTest extends BuildViewTestCase {
@@ -137,57 +137,60 @@
Path fooDir = fooBuildFile.getParentDirectory();
// Our custom filesystem says that fooDir is neither a file nor directory nor symlink
- FileStatus inconsistentFileStatus = new FileStatus() {
- @Override
- public boolean isFile() {
- return false;
- }
+ FileStatus inconsistentFileStatus =
+ new FileStatus() {
+ @Override
+ public boolean isFile() {
+ return false;
+ }
- @Override
- public boolean isDirectory() {
- return false;
- }
+ @Override
+ public boolean isDirectory() {
+ return false;
+ }
- @Override
- public boolean isSymbolicLink() {
- return false;
- }
+ @Override
+ public boolean isSymbolicLink() {
+ return false;
+ }
- @Override
- public boolean isSpecialFile() {
- return false;
- }
+ @Override
+ public boolean isSpecialFile() {
+ return false;
+ }
- @Override
- public long getSize() throws IOException {
- return 0;
- }
+ @Override
+ public long getSize() throws IOException {
+ return 0;
+ }
- @Override
- public long getLastModifiedTime() throws IOException {
- return 0;
- }
+ @Override
+ public long getLastModifiedTime() throws IOException {
+ return 0;
+ }
- @Override
- public long getLastChangeTime() throws IOException {
- return 0;
- }
+ @Override
+ public long getLastChangeTime() throws IOException {
+ return 0;
+ }
- @Override
- public long getNodeId() throws IOException {
- return 0;
- }
- };
+ @Override
+ public long getNodeId() throws IOException {
+ return 0;
+ }
+ };
fs.stubStat(fooBuildFile, inconsistentFileStatus);
RootedPath pkgRootedPath = RootedPath.toRootedPath(pkgRoot, fooDir);
SkyValue fooDirValue = FileStateValue.create(pkgRootedPath, tsgm);
differencer.inject(ImmutableMap.of(FileStateValue.key(pkgRootedPath), fooDirValue));
SkyKey skyKey = PackageValue.key(PackageIdentifier.parse("@//foo"));
- String expectedMessage = "according to stat, existing path /workspace/foo/BUILD is neither"
- + " a file nor directory nor symlink.";
- EvaluationResult<PackageValue> result = SkyframeExecutorTestUtils.evaluate(
- getSkyframeExecutor(), skyKey, /*keepGoing=*/false, reporter);
+ String expectedMessage =
+ "according to stat, existing path /workspace/foo/BUILD is neither"
+ + " a file nor directory nor symlink.";
+ EvaluationResult<PackageValue> result =
+ SkyframeExecutorTestUtils.evaluate(
+ getSkyframeExecutor(), skyKey, /*keepGoing=*/ false, reporter);
assertThat(result.hasError()).isTrue();
ErrorInfo errorInfo = result.getError(skyKey);
String errorMessage = errorInfo.getException().getMessage();
@@ -200,7 +203,8 @@
reporter.removeHandler(failFastHandler);
RecordingDifferencer differencer = getSkyframeExecutor().getDifferencerForTesting();
Root pkgRoot = getSkyframeExecutor().getPathEntries().get(0);
- scratch.file("foo/BUILD",
+ scratch.file(
+ "foo/BUILD",
"subinclude('//a:a')",
"sh_library(name = 'foo', srcs = glob(['bar/**/baz.sh']))");
scratch.file("a/BUILD");
@@ -220,8 +224,9 @@
ImmutableList.of(new Dirent("baz", Dirent.Type.DIRECTORY)))));
SkyKey skyKey = PackageValue.key(PackageIdentifier.parse("@//foo"));
String expectedMessage = "/workspace/foo/bar/baz is no longer an existing directory";
- EvaluationResult<PackageValue> result = SkyframeExecutorTestUtils.evaluate(
- getSkyframeExecutor(), skyKey, /*keepGoing=*/false, reporter);
+ EvaluationResult<PackageValue> result =
+ SkyframeExecutorTestUtils.evaluate(
+ getSkyframeExecutor(), skyKey, /*keepGoing=*/ false, reporter);
assertThat(result.hasError()).isTrue();
ErrorInfo errorInfo = result.getError(skyKey);
String errorMessage = errorInfo.getException().getMessage();
@@ -233,8 +238,8 @@
@Test
public void testDiscrepancyBetweenLegacyAndSkyframePackageLoadingErrors() throws Exception {
reporter.removeHandler(failFastHandler);
- Path fooBuildFile = scratch.file("foo/BUILD",
- "sh_library(name = 'foo', srcs = glob(['bar/*.sh']))");
+ Path fooBuildFile =
+ scratch.file("foo/BUILD", "sh_library(name = 'foo', srcs = glob(['bar/*.sh']))");
Path fooDir = fooBuildFile.getParentDirectory();
Path barDir = fooDir.getRelative("bar");
scratch.file("foo/bar/baz.sh");
@@ -242,8 +247,9 @@
SkyKey skyKey = PackageValue.key(PackageIdentifier.parse("@//foo"));
String expectedMessage = "Encountered error 'Directory is not readable'";
- EvaluationResult<PackageValue> result = SkyframeExecutorTestUtils.evaluate(
- getSkyframeExecutor(), skyKey, /*keepGoing=*/false, reporter);
+ EvaluationResult<PackageValue> result =
+ SkyframeExecutorTestUtils.evaluate(
+ getSkyframeExecutor(), skyKey, /*keepGoing=*/ false, reporter);
assertThat(result.hasError()).isTrue();
ErrorInfo errorInfo = result.getError(skyKey);
String errorMessage = errorInfo.getException().getMessage();
@@ -402,6 +408,7 @@
.getAttributeContainer()
.getAttr("srcs");
}
+
@Test
public void testOneNewElementInMultipleGlob() throws Exception {
scratch.file(
@@ -440,18 +447,13 @@
@Test
public void testTransitiveSkylarkDepsStoredInPackage() throws Exception {
- scratch.file("foo/BUILD",
- "load('//bar:ext.bzl', 'a')");
+ scratch.file("foo/BUILD", "load('//bar:ext.bzl', 'a')");
scratch.file("bar/BUILD");
- scratch.file("bar/ext.bzl",
- "load('//baz:ext.bzl', 'b')",
- "a = b");
+ scratch.file("bar/ext.bzl", "load('//baz:ext.bzl', 'b')", "a = b");
scratch.file("baz/BUILD");
- scratch.file("baz/ext.bzl",
- "b = 1");
+ scratch.file("baz/ext.bzl", "b = 1");
scratch.file("qux/BUILD");
- scratch.file("qux/ext.bzl",
- "c = 1");
+ scratch.file("qux/ext.bzl", "c = 1");
preparePackageLoading(rootDirectory);
@@ -462,9 +464,7 @@
Label.parseAbsolute("//bar:ext.bzl", ImmutableMap.of()),
Label.parseAbsolute("//baz:ext.bzl", ImmutableMap.of()));
- scratch.overwriteFile("bar/ext.bzl",
- "load('//qux:ext.bzl', 'c')",
- "a = c");
+ scratch.overwriteFile("bar/ext.bzl", "load('//qux:ext.bzl', 'c')", "a = c");
getSkyframeExecutor()
.invalidateFilesUnderPathForTesting(
reporter,
@@ -481,7 +481,8 @@
@Test
public void testNonExistingSkylarkExtension() throws Exception {
reporter.removeHandler(failFastHandler);
- scratch.file("test/skylark/BUILD",
+ scratch.file(
+ "test/skylark/BUILD",
"load('//test/skylark:bad_extension.bzl', 'some_symbol')",
"genrule(name = gr,",
" outs = ['out.txt'],",
@@ -489,25 +490,26 @@
invalidatePackages();
SkyKey skyKey = PackageValue.key(PackageIdentifier.parse("@//test/skylark"));
- EvaluationResult<PackageValue> result = SkyframeExecutorTestUtils.evaluate(
- getSkyframeExecutor(), skyKey, /*keepGoing=*/false, reporter);
+ EvaluationResult<PackageValue> result =
+ SkyframeExecutorTestUtils.evaluate(
+ getSkyframeExecutor(), skyKey, /*keepGoing=*/ false, reporter);
assertThat(result.hasError()).isTrue();
ErrorInfo errorInfo = result.getError(skyKey);
String expectedMsg =
"error loading package 'test/skylark': "
- + "Unable to load file '//test/skylark:bad_extension.bzl': "
- + "file doesn't exist or isn't a file";
- assertThat(errorInfo.getException())
- .hasMessage(expectedMsg);
+ + "Unable to load file '//test/skylark:bad_extension.bzl': file doesn't exist";
+ assertThat(errorInfo.getException()).hasMessage(expectedMsg);
}
@Test
public void testNonExistingSkylarkExtensionFromExtension() throws Exception {
reporter.removeHandler(failFastHandler);
- scratch.file("test/skylark/extension.bzl",
+ scratch.file(
+ "test/skylark/extension.bzl",
"load('//test/skylark:bad_extension.bzl', 'some_symbol')",
"a = 'a'");
- scratch.file("test/skylark/BUILD",
+ scratch.file(
+ "test/skylark/BUILD",
"load('//test/skylark:extension.bzl', 'a')",
"genrule(name = gr,",
" outs = ['out.txt'],",
@@ -515,16 +517,16 @@
invalidatePackages();
SkyKey skyKey = PackageValue.key(PackageIdentifier.parse("@//test/skylark"));
- EvaluationResult<PackageValue> result = SkyframeExecutorTestUtils.evaluate(
- getSkyframeExecutor(), skyKey, /*keepGoing=*/false, reporter);
+ EvaluationResult<PackageValue> result =
+ SkyframeExecutorTestUtils.evaluate(
+ getSkyframeExecutor(), skyKey, /*keepGoing=*/ false, reporter);
assertThat(result.hasError()).isTrue();
ErrorInfo errorInfo = result.getError(skyKey);
assertThat(errorInfo.getException())
.hasMessage(
"error loading package 'test/skylark': "
+ "in /workspace/test/skylark/extension.bzl: "
- + "Unable to load file '//test/skylark:bad_extension.bzl': "
- + "file doesn't exist or isn't a file");
+ + "Unable to load file '//test/skylark:bad_extension.bzl': file doesn't exist");
}
@Test
@@ -532,7 +534,8 @@
reporter.removeHandler(failFastHandler);
Path extensionFilePath = scratch.resolve("/workspace/test/skylark/extension.bzl");
FileSystemUtils.ensureSymbolicLink(extensionFilePath, PathFragment.create("extension.bzl"));
- scratch.file("test/skylark/BUILD",
+ scratch.file(
+ "test/skylark/BUILD",
"load('//test/skylark:extension.bzl', 'a')",
"genrule(name = gr,",
" outs = ['out.txt'],",
@@ -540,27 +543,28 @@
invalidatePackages();
SkyKey skyKey = PackageValue.key(PackageIdentifier.parse("@//test/skylark"));
- EvaluationResult<PackageValue> result = SkyframeExecutorTestUtils.evaluate(
- getSkyframeExecutor(), skyKey, /*keepGoing=*/false, reporter);
+ EvaluationResult<PackageValue> result =
+ SkyframeExecutorTestUtils.evaluate(
+ getSkyframeExecutor(), skyKey, /*keepGoing=*/ false, reporter);
assertThat(result.hasError()).isTrue();
ErrorInfo errorInfo = result.getError(skyKey);
assertThat(errorInfo.getRootCauseOfException()).isEqualTo(skyKey);
assertThat(errorInfo.getException())
.hasMessage(
"error loading package 'test/skylark': Encountered error while reading extension "
- + "file 'test/skylark/extension.bzl': Symlink cycle");
+ + "file 'test/skylark/extension.bzl': Symlink cycle");
}
@Test
public void testIOErrorLookingForSubpackageForLabelIsHandled() throws Exception {
reporter.removeHandler(failFastHandler);
- scratch.file("foo/BUILD",
- "sh_library(name = 'foo', srcs = ['bar/baz.sh'])");
+ scratch.file("foo/BUILD", "sh_library(name = 'foo', srcs = ['bar/baz.sh'])");
Path barBuildFile = scratch.file("foo/bar/BUILD");
fs.stubStatError(barBuildFile, new IOException("nope"));
SkyKey skyKey = PackageValue.key(PackageIdentifier.parse("@//foo"));
- EvaluationResult<PackageValue> result = SkyframeExecutorTestUtils.evaluate(
- getSkyframeExecutor(), skyKey, /*keepGoing=*/false, reporter);
+ EvaluationResult<PackageValue> result =
+ SkyframeExecutorTestUtils.evaluate(
+ getSkyframeExecutor(), skyKey, /*keepGoing=*/ false, reporter);
assertThat(result.hasError()).isTrue();
assertContainsEvent("nope");
}
@@ -575,8 +579,7 @@
@Test
public void testLoadAbsolutePath() throws Exception {
scratch.file("pkg1/BUILD");
- scratch.file("pkg2/BUILD",
- "load('//pkg1:ext.bzl', 'a')");
+ scratch.file("pkg2/BUILD", "load('//pkg1:ext.bzl', 'a')");
scratch.file("pkg1/ext.bzl", "a = 1");
validPackage(PackageValue.key(PackageIdentifier.parse("@//pkg2")));
}
@@ -605,8 +608,8 @@
// dangling symlinks.
@Test
public void testIncrementalSkyframeHybridGlobbingOnDanglingSymlink() throws Exception {
- Path packageDirPath = scratch.file("foo/BUILD",
- "exports_files(glob(['*.txt']))").getParentDirectory();
+ Path packageDirPath =
+ scratch.file("foo/BUILD", "exports_files(glob(['*.txt']))").getParentDirectory();
scratch.file("foo/existing.txt");
FileSystemUtils.ensureSymbolicLink(packageDirPath.getChild("dangling.txt"), "nope");
@@ -622,9 +625,8 @@
} catch (NoSuchTargetException expected) {
}
- scratch.overwriteFile("foo/BUILD",
- "exports_files(glob(['*.txt']))",
- "#some-irrelevant-comment");
+ scratch.overwriteFile(
+ "foo/BUILD", "exports_files(glob(['*.txt']))", "#some-irrelevant-comment");
getSkyframeExecutor()
.invalidateFilesUnderPathForTesting(
@@ -665,7 +667,8 @@
// hybrid globbing (gives coverage for both legacy globbing and skyframe globbing).
@Test
public void testRecursiveGlobNeverMatchesPackageDirectory() throws Exception {
- scratch.file("foo/BUILD",
+ scratch.file(
+ "foo/BUILD",
"[sh_library(name = x + '-matched') for x in glob(['**'], exclude_directories = 0)]");
scratch.file("foo/bar");
@@ -681,7 +684,8 @@
} catch (NoSuchTargetException expected) {
}
- scratch.overwriteFile("foo/BUILD",
+ scratch.overwriteFile(
+ "foo/BUILD",
"[sh_library(name = x + '-matched') for x in glob(['**'], exclude_directories = 0)]",
"#some-irrelevant-comment");
getSkyframeExecutor()
@@ -707,8 +711,9 @@
fs.throwExceptionOnGetInputStream(fooBuildFilePath, exn);
SkyKey skyKey = PackageValue.key(PackageIdentifier.parse("@//foo"));
- EvaluationResult<PackageValue> result = SkyframeExecutorTestUtils.evaluate(
- getSkyframeExecutor(), skyKey, /*keepGoing=*/false, reporter);
+ EvaluationResult<PackageValue> result =
+ SkyframeExecutorTestUtils.evaluate(
+ getSkyframeExecutor(), skyKey, /*keepGoing=*/ false, reporter);
assertThat(result.hasError()).isTrue();
ErrorInfo errorInfo = result.getError(skyKey);
String errorMessage = errorInfo.getException().getMessage();
@@ -725,8 +730,9 @@
fs.throwExceptionOnGetInputStream(fooBzlFilePath, exn);
SkyKey skyKey = PackageValue.key(PackageIdentifier.parse("@//foo"));
- EvaluationResult<PackageValue> result = SkyframeExecutorTestUtils.evaluate(
- getSkyframeExecutor(), skyKey, /*keepGoing=*/false, reporter);
+ EvaluationResult<PackageValue> result =
+ SkyframeExecutorTestUtils.evaluate(
+ getSkyframeExecutor(), skyKey, /*keepGoing=*/ false, reporter);
assertThat(result.hasError()).isTrue();
ErrorInfo errorInfo = result.getError(skyKey);
String errorMessage = errorInfo.getException().getMessage();
@@ -744,8 +750,9 @@
invalidatePackages();
SkyKey skyKey = PackageValue.key(PackageIdentifier.parse("@//pkg"));
- EvaluationResult<PackageValue> result = SkyframeExecutorTestUtils.evaluate(
- getSkyframeExecutor(), skyKey, /*keepGoing=*/false, reporter);
+ EvaluationResult<PackageValue> result =
+ SkyframeExecutorTestUtils.evaluate(
+ getSkyframeExecutor(), skyKey, /*keepGoing=*/ false, reporter);
assertThatEvaluationResult(result).hasNoError();
assertThat(result.get(skyKey).getPackage().containsErrors()).isTrue();
assertContainsEvent("Label '//pkg:sub/blah' crosses boundary of subpackage 'pkg/sub'");
@@ -762,8 +769,9 @@
invalidatePackages();
SkyKey skyKey = PackageValue.key(PackageIdentifier.parse("@//pkg"));
- EvaluationResult<PackageValue> result = SkyframeExecutorTestUtils.evaluate(
- getSkyframeExecutor(), skyKey, /*keepGoing=*/false, reporter);
+ EvaluationResult<PackageValue> result =
+ SkyframeExecutorTestUtils.evaluate(
+ getSkyframeExecutor(), skyKey, /*keepGoing=*/ false, reporter);
assertThatEvaluationResult(result).hasError();
assertThatEvaluationResult(result)
.hasErrorEntryForKeyThat(skyKey)
@@ -797,10 +805,9 @@
private static class FileStatusImpl extends FileStatusOrException {
- @Nullable
- private final FileStatus fileStatus;
+ @Nullable private final FileStatus fileStatus;
- private FileStatusImpl(@Nullable FileStatus fileStatus) {
+ private FileStatusImpl(@Nullable FileStatus fileStatus) {
this.fileStatus = fileStatus;
}