Use a relative path for the runfiles tree Add preconditions to enforce this and remove some now unnecessary code. A small step towards #1593. -- PiperOrigin-RevId: 150625693 MOS_MIGRATED_REVID=150625693
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupplierImpl.java b/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupplierImpl.java index 79ecce1..a863234 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupplierImpl.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupplierImpl.java
@@ -65,6 +65,7 @@ PathFragment runfilesDir, Runfiles runfiles, @Nullable Artifact manifest) { + Preconditions.checkArgument(!runfilesDir.isAbsolute()); this.runfilesDir = Preconditions.checkNotNull(runfilesDir); this.runfiles = Preconditions.checkNotNull(runfiles); this.manifest = manifest;
diff --git a/src/main/java/com/google/devtools/build/lib/exec/StandaloneTestStrategy.java b/src/main/java/com/google/devtools/build/lib/exec/StandaloneTestStrategy.java index ac42e14..f338d2b 100644 --- a/src/main/java/com/google/devtools/build/lib/exec/StandaloneTestStrategy.java +++ b/src/main/java/com/google/devtools/build/lib/exec/StandaloneTestStrategy.java
@@ -118,7 +118,7 @@ ImmutableMap.copyOf(env), ImmutableMap.copyOf(info), new RunfilesSupplierImpl( - runfilesDir.asFragment(), action.getExecutionSettings().getRunfiles()), + runfilesDir.relativeTo(execRoot), action.getExecutionSettings().getRunfiles()), /*inputs=*/ImmutableList.copyOf(action.getInputs()), /*tools=*/ImmutableList.<Artifact>of(), /*filesetManifests=*/ImmutableList.<Artifact>of(),
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/SpawnHelpers.java b/src/main/java/com/google/devtools/build/lib/sandbox/SpawnHelpers.java index 28a0b2a..d8bb0a7 100644 --- a/src/main/java/com/google/devtools/build/lib/sandbox/SpawnHelpers.java +++ b/src/main/java/com/google/devtools/build/lib/sandbox/SpawnHelpers.java
@@ -145,9 +145,7 @@ for (Map.Entry<PathFragment, Map<PathFragment, Artifact>> rootAndMappings : rootsAndMappings.entrySet()) { PathFragment root = rootAndMappings.getKey(); - if (root.isAbsolute()) { - root = root.relativeTo(execRoot.asFragment()); - } + Preconditions.checkState(!root.isAbsolute()); for (Map.Entry<PathFragment, Artifact> mapping : rootAndMappings.getValue().entrySet()) { Artifact sourceArtifact = mapping.getValue(); Path source =
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/actions/SpawnActionTest.java b/src/test/java/com/google/devtools/build/lib/analysis/actions/SpawnActionTest.java index 150ed7a..8aef0e6 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/actions/SpawnActionTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/actions/SpawnActionTest.java
@@ -353,7 +353,7 @@ Action[] actions = builder() .addInput(manifest) .addRunfilesSupplier( - new RunfilesSupplierImpl(new PathFragment("/destination/"), Runfiles.EMPTY, manifest)) + new RunfilesSupplierImpl(new PathFragment("destination"), Runfiles.EMPTY, manifest)) .addOutput(getBinArtifactWithNoOwner("output")) .setExecutable(scratch.file("/bin/xxx").asFragment()) .setProgressMessage("Test")