aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar tomlu <tomlu@google.com>2018-01-11 15:17:28 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-01-11 15:19:05 -0800
commit1a19b62bc493d83734c34c888401d5c45e8bf55c (patch)
treed71e057a8193a845b2268e8937aa406caa395e09 /src
parentac2666018e6a4ad37cd108ea86715d8a4904bb01 (diff)
Plumb exec root through to all spawn runners.
They need this to parse input manifests. Previously we would grab the exec root from the Root, but wish to unsupport this. PiperOrigin-RevId: 181669143
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/exec/AbstractSpawnStrategy.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/exec/SpawnInputExpander.java18
-rw-r--r--src/main/java/com/google/devtools/build/lib/remote/RemoteActionContextProvider.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnStrategy.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedStrategy.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/sandbox/ProcessWrapperSandboxedStrategy.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/sandbox/SandboxActionContextProvider.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/standalone/StandaloneActionContextProvider.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategy.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/worker/WorkerActionContextProvider.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnStrategy.java5
-rw-r--r--src/test/java/com/google/devtools/build/lib/exec/AbstractSpawnStrategyTest.java18
-rw-r--r--src/test/java/com/google/devtools/build/lib/exec/SpawnInputExpanderTest.java6
-rw-r--r--src/test/java/com/google/devtools/build/lib/remote/GrpcRemoteExecutionClientTest.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnCacheTest.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnRunnerTest.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategyTest.java1
18 files changed, 54 insertions, 41 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/exec/AbstractSpawnStrategy.java b/src/main/java/com/google/devtools/build/lib/exec/AbstractSpawnStrategy.java
index 6562a6cc7b..be9c9dd617 100644
--- a/src/main/java/com/google/devtools/build/lib/exec/AbstractSpawnStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/exec/AbstractSpawnStrategy.java
@@ -52,8 +52,8 @@ public abstract class AbstractSpawnStrategy implements SandboxedSpawnActionConte
private final SpawnRunner spawnRunner;
private final AtomicInteger execCount = new AtomicInteger();
- public AbstractSpawnStrategy(SpawnRunner spawnRunner) {
- this.spawnInputExpander = new SpawnInputExpander(false);
+ public AbstractSpawnStrategy(Path execRoot, SpawnRunner spawnRunner) {
+ this.spawnInputExpander = new SpawnInputExpander(execRoot, false);
this.spawnRunner = spawnRunner;
}
diff --git a/src/main/java/com/google/devtools/build/lib/exec/SpawnInputExpander.java b/src/main/java/com/google/devtools/build/lib/exec/SpawnInputExpander.java
index f1d34d0f24..9197e870ca 100644
--- a/src/main/java/com/google/devtools/build/lib/exec/SpawnInputExpander.java
+++ b/src/main/java/com/google/devtools/build/lib/exec/SpawnInputExpander.java
@@ -27,6 +27,7 @@ import com.google.devtools.build.lib.actions.Spawn;
import com.google.devtools.build.lib.actions.cache.VirtualActionInput;
import com.google.devtools.build.lib.actions.cache.VirtualActionInput.EmptyActionInput;
import com.google.devtools.build.lib.rules.fileset.FilesetActionContext;
+import com.google.devtools.build.lib.vfs.Path;
import com.google.devtools.build.lib.vfs.PathFragment;
import java.io.IOException;
import java.util.List;
@@ -44,13 +45,14 @@ public class SpawnInputExpander {
@VisibleForTesting
static final ActionInput EMPTY_FILE = new EmptyActionInput("/dev/null");
+ private final Path execRoot;
private final boolean strict;
/**
* Creates a new instance. If strict is true, then the expander checks for directories in runfiles
* and throws an exception if it finds any. Otherwise it silently ignores directories in runfiles
- * and adds a mapping for them. At this time, directories in filesets are always silently added
- * as mappings.
+ * and adds a mapping for them. At this time, directories in filesets are always silently added as
+ * mappings.
*
* <p>Directories in inputs are a correctness issue: Bazel only tracks dependencies at the action
* level, and it does not track dependencies on directories. Making a directory available to a
@@ -61,7 +63,8 @@ public class SpawnInputExpander {
* the subprocess. However, that's a breaking change, and therefore we make it depend on this flag
* for now.
*/
- public SpawnInputExpander(boolean strict) {
+ public SpawnInputExpander(Path execRoot, boolean strict) {
+ this.execRoot = execRoot;
this.strict = strict;
}
@@ -104,16 +107,15 @@ public class SpawnInputExpander {
}
/**
- * Parses the fileset manifest file, adding to the inputMappings where
- * appropriate. Lines referring to directories are recursed.
+ * Parses the fileset manifest file, adding to the inputMappings where appropriate. Lines
+ * referring to directories are recursed.
*/
@VisibleForTesting
void parseFilesetManifest(
Map<PathFragment, ActionInput> inputMappings, Artifact manifest, String workspaceName)
- throws IOException {
+ throws IOException {
FilesetManifest filesetManifest =
- FilesetManifest.parseManifestFile(
- manifest, manifest.getRoot().getExecRoot(), workspaceName, ERROR);
+ FilesetManifest.parseManifestFile(manifest, execRoot, workspaceName, ERROR);
for (Map.Entry<PathFragment, String> mapping : filesetManifest.getEntries().entrySet()) {
String value = mapping.getValue();
ActionInput artifact = value == null ? EMPTY_FILE : ActionInputHelper.fromPath(value);
diff --git a/src/main/java/com/google/devtools/build/lib/remote/RemoteActionContextProvider.java b/src/main/java/com/google/devtools/build/lib/remote/RemoteActionContextProvider.java
index a20b51fbbb..329e7f3640 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/RemoteActionContextProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/remote/RemoteActionContextProvider.java
@@ -82,7 +82,7 @@ final class RemoteActionContextProvider extends ActionContextProvider {
cache,
executor,
digestUtil);
- return ImmutableList.of(new RemoteSpawnStrategy(spawnRunner));
+ return ImmutableList.of(new RemoteSpawnStrategy(env.getExecRoot(), spawnRunner));
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnStrategy.java b/src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnStrategy.java
index 3cc91565ca..9265147edf 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnStrategy.java
@@ -17,6 +17,7 @@ import com.google.devtools.build.lib.actions.ExecutionStrategy;
import com.google.devtools.build.lib.actions.SpawnActionContext;
import com.google.devtools.build.lib.exec.AbstractSpawnStrategy;
import com.google.devtools.build.lib.exec.SpawnRunner;
+import com.google.devtools.build.lib.vfs.Path;
/**
* Strategy that uses a distributed cache for sharing action input and output files. Optionally this
@@ -27,8 +28,8 @@ import com.google.devtools.build.lib.exec.SpawnRunner;
contextType = SpawnActionContext.class
)
final class RemoteSpawnStrategy extends AbstractSpawnStrategy {
- RemoteSpawnStrategy(SpawnRunner spawnRunner) {
- super(spawnRunner);
+ RemoteSpawnStrategy(Path execRoot, SpawnRunner spawnRunner) {
+ super(execRoot, spawnRunner);
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedStrategy.java b/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedStrategy.java
index 7da5e47cec..fc8a3c3fad 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedStrategy.java
@@ -18,6 +18,7 @@ import com.google.devtools.build.lib.actions.ExecutionStrategy;
import com.google.devtools.build.lib.actions.SpawnActionContext;
import com.google.devtools.build.lib.exec.AbstractSpawnStrategy;
import com.google.devtools.build.lib.exec.SpawnRunner;
+import com.google.devtools.build.lib.vfs.Path;
/** Strategy that uses sandboxing to execute a process, for Darwin */
//TODO(ulfjack): This class only exists for this annotation. Find a better way to handle this!
@@ -26,8 +27,8 @@ import com.google.devtools.build.lib.exec.SpawnRunner;
contextType = SpawnActionContext.class
)
final class DarwinSandboxedStrategy extends AbstractSpawnStrategy {
- DarwinSandboxedStrategy(SpawnRunner spawnRunner) {
- super(spawnRunner);
+ DarwinSandboxedStrategy(Path execRoot, SpawnRunner spawnRunner) {
+ super(execRoot, spawnRunner);
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java b/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java
index 526f155f31..9e665db734 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java
@@ -32,8 +32,8 @@ import java.util.Optional;
contextType = SpawnActionContext.class
)
public final class LinuxSandboxedStrategy extends AbstractSpawnStrategy {
- LinuxSandboxedStrategy(SpawnRunner spawnRunner) {
- super(spawnRunner);
+ LinuxSandboxedStrategy(Path execRoot, SpawnRunner spawnRunner) {
+ super(execRoot, spawnRunner);
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/ProcessWrapperSandboxedStrategy.java b/src/main/java/com/google/devtools/build/lib/sandbox/ProcessWrapperSandboxedStrategy.java
index a92f2698c7..83c279a726 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/ProcessWrapperSandboxedStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/ProcessWrapperSandboxedStrategy.java
@@ -18,6 +18,7 @@ import com.google.devtools.build.lib.actions.ExecutionStrategy;
import com.google.devtools.build.lib.actions.SpawnActionContext;
import com.google.devtools.build.lib.exec.AbstractSpawnStrategy;
import com.google.devtools.build.lib.exec.SpawnRunner;
+import com.google.devtools.build.lib.vfs.Path;
/** Strategy that uses sandboxing to execute a process. */
//TODO(ulfjack): This class only exists for this annotation. Find a better way to handle this!
@@ -26,8 +27,8 @@ import com.google.devtools.build.lib.exec.SpawnRunner;
contextType = SpawnActionContext.class
)
final class ProcessWrapperSandboxedStrategy extends AbstractSpawnStrategy {
- ProcessWrapperSandboxedStrategy(SpawnRunner spawnRunner) {
- super(spawnRunner);
+ ProcessWrapperSandboxedStrategy(Path execRoot, SpawnRunner spawnRunner) {
+ super(execRoot, spawnRunner);
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/SandboxActionContextProvider.java b/src/main/java/com/google/devtools/build/lib/sandbox/SandboxActionContextProvider.java
index d4747c2243..9497a09dd8 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/SandboxActionContextProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/SandboxActionContextProvider.java
@@ -67,7 +67,7 @@ final class SandboxActionContextProvider extends ActionContextProvider {
cmdEnv,
new ProcessWrapperSandboxedSpawnRunner(
cmdEnv, sandboxBase, productName, timeoutKillDelay));
- contexts.add(new ProcessWrapperSandboxedStrategy(spawnRunner));
+ contexts.add(new ProcessWrapperSandboxedStrategy(cmdEnv.getExecRoot(), spawnRunner));
}
// This is the preferred sandboxing strategy on Linux.
@@ -76,7 +76,7 @@ final class SandboxActionContextProvider extends ActionContextProvider {
withFallback(
cmdEnv,
LinuxSandboxedStrategy.create(cmdEnv, sandboxBase, productName, timeoutKillDelay));
- contexts.add(new LinuxSandboxedStrategy(spawnRunner));
+ contexts.add(new LinuxSandboxedStrategy(cmdEnv.getExecRoot(), spawnRunner));
}
// This is the preferred sandboxing strategy on macOS.
@@ -85,7 +85,7 @@ final class SandboxActionContextProvider extends ActionContextProvider {
withFallback(
cmdEnv,
new DarwinSandboxedSpawnRunner(cmdEnv, sandboxBase, productName, timeoutKillDelay));
- contexts.add(new DarwinSandboxedStrategy(spawnRunner));
+ contexts.add(new DarwinSandboxedStrategy(cmdEnv.getExecRoot(), spawnRunner));
}
return new SandboxActionContextProvider(contexts.build());
diff --git a/src/main/java/com/google/devtools/build/lib/standalone/StandaloneActionContextProvider.java b/src/main/java/com/google/devtools/build/lib/standalone/StandaloneActionContextProvider.java
index f5c45af117..08ac0cea1e 100644
--- a/src/main/java/com/google/devtools/build/lib/standalone/StandaloneActionContextProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/standalone/StandaloneActionContextProvider.java
@@ -91,7 +91,7 @@ public class StandaloneActionContextProvider extends ActionContextProvider {
// could potentially be used and a spawnActionContext doesn't specify which one it wants, the
// last one from strategies list will be used
return ImmutableList.of(
- new StandaloneSpawnStrategy(createLocalRunner(env)),
+ new StandaloneSpawnStrategy(env.getExecRoot(), createLocalRunner(env)),
new DummyIncludeScanningContext(),
new SpawnGccStrategy(),
testStrategy,
diff --git a/src/main/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategy.java b/src/main/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategy.java
index bbc1874676..e08c962c77 100644
--- a/src/main/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategy.java
@@ -17,14 +17,15 @@ import com.google.devtools.build.lib.actions.ExecutionStrategy;
import com.google.devtools.build.lib.actions.SpawnActionContext;
import com.google.devtools.build.lib.exec.AbstractSpawnStrategy;
import com.google.devtools.build.lib.exec.SpawnRunner;
+import com.google.devtools.build.lib.vfs.Path;
/**
* Strategy that uses subprocessing to execute a process.
*/
@ExecutionStrategy(name = { "standalone", "local" }, contextType = SpawnActionContext.class)
public class StandaloneSpawnStrategy extends AbstractSpawnStrategy {
- public StandaloneSpawnStrategy(SpawnRunner spawnRunner) {
- super(spawnRunner);
+ public StandaloneSpawnStrategy(Path execRoot, SpawnRunner spawnRunner) {
+ super(execRoot, spawnRunner);
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/worker/WorkerActionContextProvider.java b/src/main/java/com/google/devtools/build/lib/worker/WorkerActionContextProvider.java
index 5d48840b7e..4207f6d8d1 100644
--- a/src/main/java/com/google/devtools/build/lib/worker/WorkerActionContextProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/worker/WorkerActionContextProvider.java
@@ -47,7 +47,8 @@ final class WorkerActionContextProvider extends ActionContextProvider {
env.getReporter(),
createFallbackRunner(env));
- WorkerSpawnStrategy workerSpawnStrategy = new WorkerSpawnStrategy(spawnRunner);
+ WorkerSpawnStrategy workerSpawnStrategy =
+ new WorkerSpawnStrategy(env.getExecRoot(), spawnRunner);
TestActionContext workerTestStrategy =
new WorkerTestStrategy(env, env.getOptions(), workers, extraFlags);
this.strategies = ImmutableList.of(workerSpawnStrategy, workerTestStrategy);
diff --git a/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnStrategy.java b/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnStrategy.java
index 890de1bd9e..462b12fce1 100644
--- a/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnStrategy.java
@@ -16,6 +16,7 @@ package com.google.devtools.build.lib.worker;
import com.google.devtools.build.lib.actions.ExecutionStrategy;
import com.google.devtools.build.lib.actions.SpawnActionContext;
import com.google.devtools.build.lib.exec.AbstractSpawnStrategy;
+import com.google.devtools.build.lib.vfs.Path;
/**
* A spawn action context that launches Spawns the first time they are used in a persistent mode and
@@ -27,8 +28,8 @@ import com.google.devtools.build.lib.exec.AbstractSpawnStrategy;
)
public final class WorkerSpawnStrategy extends AbstractSpawnStrategy {
- public WorkerSpawnStrategy(WorkerSpawnRunner spawnRunner) {
- super(spawnRunner);
+ public WorkerSpawnStrategy(Path execRoot, WorkerSpawnRunner spawnRunner) {
+ super(execRoot, spawnRunner);
}
@Override
diff --git a/src/test/java/com/google/devtools/build/lib/exec/AbstractSpawnStrategyTest.java b/src/test/java/com/google/devtools/build/lib/exec/AbstractSpawnStrategyTest.java
index 986053fee9..cd8c2c3909 100644
--- a/src/test/java/com/google/devtools/build/lib/exec/AbstractSpawnStrategyTest.java
+++ b/src/test/java/com/google/devtools/build/lib/exec/AbstractSpawnStrategyTest.java
@@ -32,6 +32,7 @@ import com.google.devtools.build.lib.exec.util.SpawnBuilder;
import com.google.devtools.build.lib.testutil.Suite;
import com.google.devtools.build.lib.testutil.TestSpec;
import com.google.devtools.build.lib.vfs.FileSystem;
+import com.google.devtools.build.lib.vfs.Path;
import com.google.devtools.build.lib.vfs.inmemoryfs.InMemoryFileSystem;
import java.util.Collection;
import java.util.List;
@@ -47,8 +48,8 @@ import org.mockito.MockitoAnnotations;
@TestSpec(size = Suite.SMALL_TESTS)
public class AbstractSpawnStrategyTest {
private static class TestedSpawnStrategy extends AbstractSpawnStrategy {
- public TestedSpawnStrategy(SpawnRunner spawnRunner) {
- super(spawnRunner);
+ public TestedSpawnStrategy(Path execRoot, SpawnRunner spawnRunner) {
+ super(execRoot, spawnRunner);
}
}
@@ -56,6 +57,7 @@ public class AbstractSpawnStrategyTest {
new SpawnBuilder("/bin/echo", "Hi!").withEnvironment("VARIABLE", "value").build();
private final FileSystem fs = new InMemoryFileSystem();
+ private final Path execRoot = fs.getPath("/execroot");
@Mock private SpawnRunner spawnRunner;
@Mock private ActionExecutionContext actionExecutionContext;
@@ -73,7 +75,7 @@ public class AbstractSpawnStrategyTest {
.thenReturn(spawnResult);
List<SpawnResult> spawnResults =
- new TestedSpawnStrategy(spawnRunner).exec(SIMPLE_SPAWN, actionExecutionContext);
+ new TestedSpawnStrategy(execRoot, spawnRunner).exec(SIMPLE_SPAWN, actionExecutionContext);
assertThat(spawnResults).containsExactly(spawnResult);
@@ -84,7 +86,7 @@ public class AbstractSpawnStrategyTest {
@Test
public void testNonZeroExit() throws Exception {
when(actionExecutionContext.getContext(eq(SpawnCache.class))).thenReturn(SpawnCache.NO_CACHE);
- when(actionExecutionContext.getExecRoot()).thenReturn(fs.getPath("/execroot"));
+ when(actionExecutionContext.getExecRoot()).thenReturn(execRoot);
SpawnResult result =
new SpawnResult.Builder().setStatus(Status.NON_ZERO_EXIT).setExitCode(1).build();
when(spawnRunner.exec(any(Spawn.class), any(SpawnExecutionPolicy.class)))
@@ -92,7 +94,7 @@ public class AbstractSpawnStrategyTest {
try {
// Ignoring the List<SpawnResult> return value.
- new TestedSpawnStrategy(spawnRunner).exec(SIMPLE_SPAWN, actionExecutionContext);
+ new TestedSpawnStrategy(execRoot, spawnRunner).exec(SIMPLE_SPAWN, actionExecutionContext);
fail("Expected SpawnExecException");
} catch (SpawnExecException e) {
assertThat(e.getSpawnResult()).isSameAs(result);
@@ -111,7 +113,7 @@ public class AbstractSpawnStrategyTest {
when(actionExecutionContext.getExecRoot()).thenReturn(fs.getPath("/execroot"));
List<SpawnResult> spawnResults =
- new TestedSpawnStrategy(spawnRunner).exec(SIMPLE_SPAWN, actionExecutionContext);
+ new TestedSpawnStrategy(execRoot, spawnRunner).exec(SIMPLE_SPAWN, actionExecutionContext);
assertThat(spawnResults).containsExactly(spawnResult);
verify(spawnRunner, never()).exec(any(Spawn.class), any(SpawnExecutionPolicy.class));
}
@@ -132,7 +134,7 @@ public class AbstractSpawnStrategyTest {
.thenReturn(spawnResult);
List<SpawnResult> spawnResults =
- new TestedSpawnStrategy(spawnRunner).exec(SIMPLE_SPAWN, actionExecutionContext);
+ new TestedSpawnStrategy(execRoot, spawnRunner).exec(SIMPLE_SPAWN, actionExecutionContext);
assertThat(spawnResults).containsExactly(spawnResult);
@@ -158,7 +160,7 @@ public class AbstractSpawnStrategyTest {
try {
// Ignoring the List<SpawnResult> return value.
- new TestedSpawnStrategy(spawnRunner).exec(SIMPLE_SPAWN, actionExecutionContext);
+ new TestedSpawnStrategy(execRoot, spawnRunner).exec(SIMPLE_SPAWN, actionExecutionContext);
fail("Expected SpawnExecException");
} catch (SpawnExecException e) {
assertThat(e.getSpawnResult()).isSameAs(result);
diff --git a/src/test/java/com/google/devtools/build/lib/exec/SpawnInputExpanderTest.java b/src/test/java/com/google/devtools/build/lib/exec/SpawnInputExpanderTest.java
index ee03f739f7..819389346f 100644
--- a/src/test/java/com/google/devtools/build/lib/exec/SpawnInputExpanderTest.java
+++ b/src/test/java/com/google/devtools/build/lib/exec/SpawnInputExpanderTest.java
@@ -48,13 +48,15 @@ public class SpawnInputExpanderTest {
private static final byte[] FAKE_DIGEST = new byte[] {1, 2, 3, 4};
private FileSystem fs;
+ private Path execRoot;
private SpawnInputExpander expander;
private Map<PathFragment, ActionInput> inputMappings;
@Before
public final void createSpawnInputExpander() throws Exception {
fs = new InMemoryFileSystem();
- expander = new SpawnInputExpander(/*strict=*/true);
+ execRoot = fs.getPath("/root");
+ expander = new SpawnInputExpander(execRoot, /*strict=*/ true);
inputMappings = Maps.newHashMap();
}
@@ -112,7 +114,7 @@ public class SpawnInputExpanderTest {
FakeActionInputFileCache mockCache = new FakeActionInputFileCache();
mockCache.put(artifact, FileArtifactValue.createDirectory(-1));
- expander = new SpawnInputExpander(/*strict=*/false);
+ expander = new SpawnInputExpander(execRoot, /*strict=*/ false);
expander.addRunfilesToInputs(inputMappings, supplier, mockCache);
assertThat(inputMappings).hasSize(1);
assertThat(inputMappings)
diff --git a/src/test/java/com/google/devtools/build/lib/remote/GrpcRemoteExecutionClientTest.java b/src/test/java/com/google/devtools/build/lib/remote/GrpcRemoteExecutionClientTest.java
index a19485005b..c278581c2c 100644
--- a/src/test/java/com/google/devtools/build/lib/remote/GrpcRemoteExecutionClientTest.java
+++ b/src/test/java/com/google/devtools/build/lib/remote/GrpcRemoteExecutionClientTest.java
@@ -168,7 +168,7 @@ public class GrpcRemoteExecutionClientTest {
@Override
public SortedMap<PathFragment, ActionInput> getInputMapping() throws IOException {
- return new SpawnInputExpander(/*strict*/ false)
+ return new SpawnInputExpander(execRoot, /*strict*/ false)
.getInputMapping(simpleSpawn, SIMPLE_ARTIFACT_EXPANDER, fakeFileCache, "workspace");
}
diff --git a/src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnCacheTest.java b/src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnCacheTest.java
index b14fb71d16..3e8bb83f4b 100644
--- a/src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnCacheTest.java
+++ b/src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnCacheTest.java
@@ -138,7 +138,7 @@ public class RemoteSpawnCacheTest {
@Override
public SortedMap<PathFragment, ActionInput> getInputMapping() throws IOException {
- return new SpawnInputExpander(/*strict*/ false)
+ return new SpawnInputExpander(execRoot, /*strict*/ false)
.getInputMapping(simpleSpawn, SIMPLE_ARTIFACT_EXPANDER, fakeFileCache, "workspace");
}
diff --git a/src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnRunnerTest.java b/src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnRunnerTest.java
index c2973b0ae6..bd6c12eda1 100644
--- a/src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnRunnerTest.java
+++ b/src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnRunnerTest.java
@@ -758,7 +758,7 @@ public class RemoteSpawnRunnerTest {
@Override
public SortedMap<PathFragment, ActionInput> getInputMapping() throws IOException {
- return new SpawnInputExpander(/*strict*/ false)
+ return new SpawnInputExpander(execRoot, /*strict*/ false)
.getInputMapping(spawn, artifactExpander, fakeFileCache, "workspace");
}
diff --git a/src/test/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategyTest.java b/src/test/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategyTest.java
index 5dc7d9bc93..d4c5caca74 100644
--- a/src/test/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategyTest.java
+++ b/src/test/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategyTest.java
@@ -136,6 +136,7 @@ public class StandaloneSpawnStrategyTest {
ImmutableMap.<String, SpawnActionContext>of(
"",
new StandaloneSpawnStrategy(
+ execRoot,
new LocalSpawnRunner(
execRoot,
localExecutionOptions,