Rephrase InMemoryFileSystem in terms of error codes rather than exceptions, enabling better performance on statIfFound() / statNullable() calls.
RELNOTES: None
PiperOrigin-RevId: 212306308
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/ASTFileLookupFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/ASTFileLookupFunctionTest.java
index 5395b90..f857159 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/ASTFileLookupFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/ASTFileLookupFunctionTest.java
@@ -45,12 +45,12 @@
boolean statThrowsIoException;
@Override
- public FileStatus stat(Path path, boolean followSymlinks) throws IOException {
+ public FileStatus statIfFound(Path path, boolean followSymlinks) throws IOException {
if (statThrowsIoException
&& path.asFragment().getPathString().equals("/workspace/" + preludeLabelRelativePath)) {
throw new IOException("bork");
}
- return super.stat(path, followSymlinks);
+ return super.statIfFound(path, followSymlinks);
}
}
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java
index c23b003..6f8a519 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java
@@ -175,11 +175,11 @@
setupRoot(
new CustomInMemoryFs() {
@Override
- public FileStatus stat(Path path, boolean followSymlinks) throws IOException {
+ public FileStatus statIfFound(Path path, boolean followSymlinks) throws IOException {
if (path.getBaseName().equals("bad")) {
throw exception;
}
- return super.stat(path, followSymlinks);
+ return super.statIfFound(path, followSymlinks);
}
});
try {
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java
index b76bbcd..e2b32f5 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java
@@ -1636,14 +1636,14 @@
}
@Override
- public FileStatus stat(Path path, boolean followSymlinks) throws IOException {
+ public FileStatus statIfFound(Path path, boolean followSymlinks) throws IOException {
if (stubbedStatErrors.containsKey(path)) {
throw stubbedStatErrors.get(path);
}
if (stubbedStats.containsKey(path)) {
return stubbedStats.get(path);
}
- return super.stat(path, followSymlinks);
+ return super.statIfFound(path, followSymlinks);
}
}
}
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java
index 8ae2219..4e47c00 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java
@@ -843,11 +843,11 @@
}
@Override
- public FileStatus stat(Path path, boolean followSymlinks) throws IOException {
+ public FileStatus statIfFound(Path path, boolean followSymlinks) throws IOException {
if (statThrowsRuntimeException) {
throw new RuntimeException("bork");
}
- return super.stat(path, followSymlinks);
+ return super.statIfFound(path, followSymlinks);
}
@Override
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/GlobFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/GlobFunctionTest.java
index 7d118c6..fb76a9f 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/GlobFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/GlobFunctionTest.java
@@ -789,11 +789,11 @@
}
@Override
- public FileStatus stat(Path path, boolean followSymlinks) throws IOException {
+ public FileStatus statIfFound(Path path, boolean followSymlinks) throws IOException {
if (stubbedStats.containsKey(path)) {
return stubbedStats.get(path);
}
- return super.stat(path, followSymlinks);
+ return super.statIfFound(path, followSymlinks);
}
}
}
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 1a3dcdd..48dc8b4 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
@@ -772,11 +772,11 @@
}
@Override
- public FileStatus stat(Path path, boolean followSymlinks) throws IOException {
+ public FileStatus statIfFound(Path path, boolean followSymlinks) throws IOException {
if (stubbedStats.containsKey(path)) {
return stubbedStats.get(path).get();
}
- return super.stat(path, followSymlinks);
+ return super.statIfFound(path, followSymlinks);
}
public void scheduleMakeUnreadableAfterReaddir(Path path) {
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/ParallelBuilderTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/ParallelBuilderTest.java
index b03a0e9..ba66167 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/ParallelBuilderTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/ParallelBuilderTest.java
@@ -240,8 +240,8 @@
public void testUpdateCacheError() throws Exception {
FileSystem fs = new InMemoryFileSystem() {
@Override
- public FileStatus stat(Path path, boolean followSymlinks) throws IOException {
- final FileStatus stat = super.stat(path, followSymlinks);
+ public FileStatus statIfFound(Path path, boolean followSymlinks) throws IOException {
+ final FileStatus stat = super.statIfFound(path, followSymlinks);
if (path.toString().endsWith("/out/foo")) {
return new FileStatus() {
private final FileStatus original = stat;
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeLabelVisitorTestCase.java b/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeLabelVisitorTestCase.java
index fae9d22..0afd49c 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeLabelVisitorTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeLabelVisitorTestCase.java
@@ -254,11 +254,11 @@
}
@Override
- public FileStatus stat(Path path, boolean followSymlinks) throws IOException {
+ public FileStatus statIfFound(Path path, boolean followSymlinks) throws IOException {
if (stubbedStats.containsKey(path)) {
return stubbedStats.get(path);
}
- return super.stat(path, followSymlinks);
+ return super.statIfFound(path, followSymlinks);
}
}
}
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/TargetMarkerFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/TargetMarkerFunctionTest.java
index 6778dc8..9d53a09 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/TargetMarkerFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/TargetMarkerFunctionTest.java
@@ -153,11 +153,11 @@
}
@Override
- public FileStatus stat(Path path, boolean followSymlinks) throws IOException {
+ public FileStatus statIfFound(Path path, boolean followSymlinks) throws IOException {
if (stubbedStatExceptions.containsKey(path)) {
throw stubbedStatExceptions.get(path);
}
- return super.stat(path, followSymlinks);
+ return super.statIfFound(path, followSymlinks);
}
}
}
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java
index 0f5d21b..3bb8353 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java
@@ -181,11 +181,11 @@
setupRoot(
new CustomInMemoryFs() {
@Override
- public FileStatus stat(Path path, boolean followSymlinks) throws IOException {
+ public FileStatus statIfFound(Path path, boolean followSymlinks) throws IOException {
if (path.getBaseName().equals("one")) {
throw exception;
}
- return super.stat(path, followSymlinks);
+ return super.statIfFound(path, followSymlinks);
}
});
try {