Extract a common AbstractSpawnStrategy parent class
This removes a bunch of code duplication that I previously introduced.
PiperOrigin-RevId: 162909430
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 5e4cf5d..f344708 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
@@ -17,6 +17,8 @@
import com.google.devtools.build.lib.actions.ExecutionStrategy;
import com.google.devtools.build.lib.actions.SpawnActionContext;
import com.google.devtools.build.lib.buildtool.BuildRequest;
+import com.google.devtools.build.lib.exec.AbstractSpawnStrategy;
+import com.google.devtools.build.lib.exec.SpawnRunner;
import com.google.devtools.build.lib.runtime.CommandEnvironment;
import com.google.devtools.build.lib.vfs.FileSystemUtils;
import com.google.devtools.build.lib.vfs.Path;
@@ -28,33 +30,22 @@
name = {"sandboxed", "linux-sandbox"},
contextType = SpawnActionContext.class
)
-public final class LinuxSandboxedStrategy extends SandboxStrategy {
- private LinuxSandboxedStrategy(
- CommandEnvironment cmdEnv,
- BuildRequest buildRequest,
- Path sandboxBase,
- boolean verboseFailures,
- Path inaccessibleHelperFile,
- Path inaccessibleHelperDir,
- int timeoutGraceSeconds) {
- super(
- verboseFailures,
- new LinuxSandboxedSpawnRunner(
- cmdEnv,
- buildRequest,
- sandboxBase,
- inaccessibleHelperFile,
- inaccessibleHelperDir,
- timeoutGraceSeconds));
+public final class LinuxSandboxedStrategy extends AbstractSpawnStrategy {
+ LinuxSandboxedStrategy(boolean verboseFailures, SpawnRunner spawnRunner) {
+ super(verboseFailures, spawnRunner);
}
- static LinuxSandboxedStrategy create(
+ @Override
+ public String toString() {
+ return "sandboxed";
+ }
+
+ static LinuxSandboxedSpawnRunner create(
CommandEnvironment cmdEnv,
BuildRequest buildRequest,
Path sandboxBase,
- boolean verboseFailures,
int timeoutGraceSeconds)
- throws IOException {
+ throws IOException {
Path inaccessibleHelperFile = sandboxBase.getRelative("inaccessibleHelperFile");
FileSystemUtils.touchFile(inaccessibleHelperFile);
inaccessibleHelperFile.setReadable(false);
@@ -67,11 +58,10 @@
inaccessibleHelperDir.setWritable(false);
inaccessibleHelperDir.setExecutable(false);
- return new LinuxSandboxedStrategy(
+ return new LinuxSandboxedSpawnRunner(
cmdEnv,
buildRequest,
sandboxBase,
- verboseFailures,
inaccessibleHelperFile,
inaccessibleHelperDir,
timeoutGraceSeconds);