diff options
author | tomlu <tomlu@google.com> | 2018-01-11 15:17:28 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-01-11 15:19:05 -0800 |
commit | 1a19b62bc493d83734c34c888401d5c45e8bf55c (patch) | |
tree | d71e057a8193a845b2268e8937aa406caa395e09 /src | |
parent | ac2666018e6a4ad37cd108ea86715d8a4904bb01 (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')
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, |