Introduce Root class.
This class represents a root (such as a package path or an output root) used for file lookups and artifacts. It is meant to be as opaque as possible in order to hide the user's environment from sky keys and sky functions.
Roots are used by RootedPaths and ArtifactRoots.
This CL attempts to make the minimum number of modifications necessary to change RootedPath and ArtifactRoot to use these fields. Deprecated methods and invasive accessors are permitted to minimise the risk of any observable changes.
RELNOTES: None
PiperOrigin-RevId: 182271759
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/DiffAwarenessManagerTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/DiffAwarenessManagerTest.java
index dee4a46..5dbbaba 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/DiffAwarenessManagerTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/DiffAwarenessManagerTest.java
@@ -23,8 +23,8 @@
import com.google.devtools.build.lib.skyframe.DiffAwarenessManager.ProcessableModifiedFileSet;
import com.google.devtools.build.lib.vfs.FileSystem;
import com.google.devtools.build.lib.vfs.ModifiedFileSet;
-import com.google.devtools.build.lib.vfs.Path;
import com.google.devtools.build.lib.vfs.PathFragment;
+import com.google.devtools.build.lib.vfs.Root;
import com.google.devtools.build.lib.vfs.inmemoryfs.InMemoryFileSystem;
import com.google.devtools.common.options.OptionsClassProvider;
import java.util.List;
@@ -57,7 +57,7 @@
@Test
public void testEverythingModifiedIfNoDiffAwareness() throws Exception {
- Path pathEntry = fs.getPath("/pathEntry");
+ Root pathEntry = Root.fromPath(fs.getPath("/pathEntry"));
DiffAwarenessFactoryStub factory = new DiffAwarenessFactoryStub();
DiffAwarenessManager manager = new DiffAwarenessManager(ImmutableList.of(factory));
assertWithMessage("Expected EVERYTHING_MODIFIED since there are no factories")
@@ -71,7 +71,7 @@
@Test
public void testResetAndSetPathEntriesCallClose() throws Exception {
- Path pathEntry = fs.getPath("/pathEntry");
+ Root pathEntry = Root.fromPath(fs.getPath("/pathEntry"));
ModifiedFileSet diff = ModifiedFileSet.NOTHING_MODIFIED;
DiffAwarenessStub diffAwareness1 = new DiffAwarenessStub(ImmutableList.of(diff));
DiffAwarenessStub diffAwareness2 = new DiffAwarenessStub(ImmutableList.of(diff));
@@ -96,7 +96,7 @@
@Test
public void testHandlesUnprocessedDiffs() throws Exception {
- Path pathEntry = fs.getPath("/pathEntry");
+ Root pathEntry = Root.fromPath(fs.getPath("/pathEntry"));
ModifiedFileSet diff1 = ModifiedFileSet.builder().modify(PathFragment.create("file1")).build();
ModifiedFileSet diff2 = ModifiedFileSet.builder().modify(PathFragment.create("file2")).build();
ModifiedFileSet diff3 = ModifiedFileSet.builder().modify(PathFragment.create("file3")).build();
@@ -132,7 +132,7 @@
@Test
public void testHandlesBrokenDiffs() throws Exception {
- Path pathEntry = fs.getPath("/pathEntry");
+ Root pathEntry = Root.fromPath(fs.getPath("/pathEntry"));
DiffAwarenessFactoryStub factory1 = new DiffAwarenessFactoryStub();
DiffAwarenessStub diffAwareness1 =
new DiffAwarenessStub(ImmutableList.<ModifiedFileSet>of(), 1);
@@ -196,19 +196,19 @@
private static class DiffAwarenessFactoryStub implements DiffAwareness.Factory {
- private Map<Path, DiffAwareness> diffAwarenesses = Maps.newHashMap();
+ private final Map<Root, DiffAwareness> diffAwarenesses = Maps.newHashMap();
- public void inject(Path pathEntry, DiffAwareness diffAwareness) {
+ public void inject(Root pathEntry, DiffAwareness diffAwareness) {
diffAwarenesses.put(pathEntry, diffAwareness);
}
- public void remove(Path pathEntry) {
+ public void remove(Root pathEntry) {
diffAwarenesses.remove(pathEntry);
}
@Override
@Nullable
- public DiffAwareness maybeCreate(Path pathEntry) {
+ public DiffAwareness maybeCreate(Root pathEntry) {
return diffAwarenesses.get(pathEntry);
}
}