Remove instances of WorkerPoolImplLegacy in tests in favor of a test instance. In these cases, we only need a test worker pool instance to return a specific worker. We also want to decouple specific WorkerPool implementations from tests where it doesn't actually matter. PiperOrigin-RevId: 613525131 Change-Id: Ic71d31d1127c86d6535e35b7c0b0c4bbc8bb99e1
diff --git a/src/test/java/com/google/devtools/build/lib/actions/BUILD b/src/test/java/com/google/devtools/build/lib/actions/BUILD index 18b2b41..09776db 100644 --- a/src/test/java/com/google/devtools/build/lib/actions/BUILD +++ b/src/test/java/com/google/devtools/build/lib/actions/BUILD
@@ -69,11 +69,7 @@ "//src/main/java/com/google/devtools/build/lib/vfs:pathfragment", "//src/main/java/com/google/devtools/build/lib/vfs/inmemoryfs", "//src/main/java/com/google/devtools/build/lib/worker", - "//src/main/java/com/google/devtools/build/lib/worker:worker_factory", "//src/main/java/com/google/devtools/build/lib/worker:worker_key", - "//src/main/java/com/google/devtools/build/lib/worker:worker_options", - "//src/main/java/com/google/devtools/build/lib/worker:worker_pool_config", - "//src/main/java/com/google/devtools/build/lib/worker:worker_pool_impl", "//src/main/java/com/google/devtools/build/lib/worker:worker_process_status", "//src/main/java/com/google/devtools/build/skyframe:skyframe-objects", "//src/main/java/com/google/devtools/common/options", @@ -86,7 +82,7 @@ "//src/test/java/com/google/devtools/build/lib/testutil:TestThread", "//src/test/java/com/google/devtools/build/lib/testutil:TestUtils", "//src/test/java/com/google/devtools/build/lib/vfs/util", - "//third_party:apache_commons_pool2", + "//src/test/java/com/google/devtools/build/lib/worker:testutil", "//third_party:auto_value", "//third_party:caffeine", "//third_party:guava",
diff --git a/src/test/java/com/google/devtools/build/lib/actions/ResourceManagerTest.java b/src/test/java/com/google/devtools/build/lib/actions/ResourceManagerTest.java index e05fad5..11202e7 100644 --- a/src/test/java/com/google/devtools/build/lib/actions/ResourceManagerTest.java +++ b/src/test/java/com/google/devtools/build/lib/actions/ResourceManagerTest.java
@@ -43,13 +43,10 @@ import com.google.devtools.build.lib.vfs.FileSystem; import com.google.devtools.build.lib.vfs.inmemoryfs.InMemoryFileSystem; import com.google.devtools.build.lib.worker.Worker; -import com.google.devtools.build.lib.worker.WorkerFactory; import com.google.devtools.build.lib.worker.WorkerKey; -import com.google.devtools.build.lib.worker.WorkerOptions; -import com.google.devtools.build.lib.worker.WorkerPoolConfig; -import com.google.devtools.build.lib.worker.WorkerPoolImplLegacy; import com.google.devtools.build.lib.worker.WorkerProcessStatus; import com.google.devtools.build.lib.worker.WorkerProcessStatus.Status; +import com.google.devtools.build.lib.worker.WorkerTestUtils; import com.google.errorprone.annotations.CanIgnoreReturnValue; import java.io.IOException; import java.util.Collection; @@ -58,7 +55,6 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; import javax.annotation.Nullable; -import org.apache.commons.pool2.PooledObject; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -91,25 +87,7 @@ worker = mock(Worker.class); workerStatus = spy(new WorkerProcessStatus()); when(worker.getStatus()).thenReturn(workerStatus); - rm.setWorkerPool(createWorkerPool()); - } - - private WorkerPoolImplLegacy createWorkerPool() { - return new WorkerPoolImplLegacy( - new WorkerPoolConfig( - new WorkerFactory(fs.getPath("/workerBase"), new WorkerOptions()) { - @Override - public Worker create(WorkerKey key) { - return worker; - } - - @Override - public boolean validateObject(WorkerKey key, PooledObject<Worker> p) { - return true; - } - }, - ImmutableList.of(), - ImmutableList.of())); + rm.setWorkerPool(WorkerTestUtils.createTestWorkerPool(worker)); } private ResourceHandle acquire(double ram, double cpu, int tests, ResourcePriority priority)
diff --git a/src/test/java/com/google/devtools/build/lib/worker/BUILD b/src/test/java/com/google/devtools/build/lib/worker/BUILD index a9a8b2e..2f0a1fd 100644 --- a/src/test/java/com/google/devtools/build/lib/worker/BUILD +++ b/src/test/java/com/google/devtools/build/lib/worker/BUILD
@@ -37,7 +37,7 @@ testonly = 1, srcs = [ "SandboxHelper.java", - "TestUtils.java", + "WorkerTestUtils.java", ], deps = [ "//src/main/java/com/google/devtools/build/lib/actions", @@ -48,9 +48,11 @@ "//src/main/java/com/google/devtools/build/lib/shell", "//src/main/java/com/google/devtools/build/lib/vfs", "//src/main/java/com/google/devtools/build/lib/vfs:pathfragment", + "//src/main/java/com/google/devtools/build/lib/worker", "//src/main/java/com/google/devtools/build/lib/worker:singleplex_worker", "//src/main/java/com/google/devtools/build/lib/worker:worker_key", "//src/main/java/com/google/devtools/build/lib/worker:worker_options", + "//src/main/java/com/google/devtools/build/lib/worker:worker_pool", "//src/main/java/com/google/devtools/build/lib/worker:worker_spawn_runner", "//src/test/java/com/google/devtools/build/lib/actions/util", "//third_party:guava",
diff --git a/src/test/java/com/google/devtools/build/lib/worker/SandboxedWorkerProxyTest.java b/src/test/java/com/google/devtools/build/lib/worker/SandboxedWorkerProxyTest.java index 692b0b8..e5883b8 100644 --- a/src/test/java/com/google/devtools/build/lib/worker/SandboxedWorkerProxyTest.java +++ b/src/test/java/com/google/devtools/build/lib/worker/SandboxedWorkerProxyTest.java
@@ -27,8 +27,8 @@ import com.google.devtools.build.lib.vfs.FileSystemUtils; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.lib.vfs.inmemoryfs.InMemoryFileSystem; -import com.google.devtools.build.lib.worker.TestUtils.FakeSubprocess; import com.google.devtools.build.lib.worker.WorkerProtocol.WorkRequest; +import com.google.devtools.build.lib.worker.WorkerTestUtils.FakeSubprocess; import java.io.IOException; import java.io.PipedInputStream; import org.junit.Before; @@ -151,32 +151,32 @@ } private SandboxedWorkerProxy createSandboxedWorkerProxy() throws IOException { - ImmutableMap.Builder<String, String> req = TestUtils.execRequirementsBuilder("Mnem"); + ImmutableMap.Builder<String, String> req = WorkerTestUtils.execRequirementsBuilder("Mnem"); req.put(SUPPORTS_MULTIPLEX_SANDBOXING, "1"); - Spawn spawn = TestUtils.createSpawn(req.buildOrThrow()); + Spawn spawn = WorkerTestUtils.createSpawn(req.buildOrThrow()); WorkerOptions options = new WorkerOptions(); options.workerMultiplex = true; options.multiplexSandboxing = true; WorkerKey key = - TestUtils.createWorkerKeyFromOptions( + WorkerTestUtils.createWorkerKeyFromOptions( PROTO, globalOutputBase, options, true, spawn, "worker.sh"); WorkerFactory factory = new WorkerFactory(workerBaseDir, options); return (SandboxedWorkerProxy) factory.create(key); } private SandboxedWorkerProxy createFakedSandboxedWorkerProxy() throws IOException { - ImmutableMap.Builder<String, String> req = TestUtils.execRequirementsBuilder("Mnem"); + ImmutableMap.Builder<String, String> req = WorkerTestUtils.execRequirementsBuilder("Mnem"); req.put(SUPPORTS_MULTIPLEX_SANDBOXING, "1"); - Spawn spawn = TestUtils.createSpawn(req.buildOrThrow()); + Spawn spawn = WorkerTestUtils.createSpawn(req.buildOrThrow()); WorkerOptions options = new WorkerOptions(); options.workerMultiplex = true; options.multiplexSandboxing = true; WorkerKey key = - TestUtils.createWorkerKeyFromOptions( + WorkerTestUtils.createWorkerKeyFromOptions( PROTO, globalOutputBase, options, true, spawn, "worker.sh"); WorkerMultiplexerManager.injectForTesting( key,
diff --git a/src/test/java/com/google/devtools/build/lib/worker/SimpleWorkerPoolTest.java b/src/test/java/com/google/devtools/build/lib/worker/SimpleWorkerPoolTest.java index e2b49289..b5f3e5a 100644 --- a/src/test/java/com/google/devtools/build/lib/worker/SimpleWorkerPoolTest.java +++ b/src/test/java/com/google/devtools/build/lib/worker/SimpleWorkerPoolTest.java
@@ -14,7 +14,7 @@ package com.google.devtools.build.lib.worker; import static com.google.common.truth.Truth.assertThat; -import static com.google.devtools.build.lib.worker.TestUtils.createWorkerKey; +import static com.google.devtools.build.lib.worker.WorkerTestUtils.createWorkerKey; import com.google.devtools.build.lib.clock.BlazeClock; import com.google.devtools.build.lib.vfs.DigestHashFunction;
diff --git a/src/test/java/com/google/devtools/build/lib/worker/WorkerLifecycleManagerTest.java b/src/test/java/com/google/devtools/build/lib/worker/WorkerLifecycleManagerTest.java index d3868c3..befed83 100644 --- a/src/test/java/com/google/devtools/build/lib/worker/WorkerLifecycleManagerTest.java +++ b/src/test/java/com/google/devtools/build/lib/worker/WorkerLifecycleManagerTest.java
@@ -15,7 +15,7 @@ import static com.google.common.collect.ImmutableList.toImmutableList; import static com.google.common.truth.Truth.assertThat; -import static com.google.devtools.build.lib.worker.TestUtils.createWorkerKey; +import static com.google.devtools.build.lib.worker.WorkerTestUtils.createWorkerKey; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doAnswer;
diff --git a/src/test/java/com/google/devtools/build/lib/worker/WorkerModuleTest.java b/src/test/java/com/google/devtools/build/lib/worker/WorkerModuleTest.java index f6c3405..8bfe6ac 100644 --- a/src/test/java/com/google/devtools/build/lib/worker/WorkerModuleTest.java +++ b/src/test/java/com/google/devtools/build/lib/worker/WorkerModuleTest.java
@@ -81,7 +81,7 @@ assertThat(fs.getPath("/outputRoot/outputBase/bazel-workers").exists()).isFalse(); assertThat(module.workerPool).isNotNull(); - WorkerKey workerKey = TestUtils.createWorkerKey(JSON, fs); + WorkerKey workerKey = WorkerTestUtils.createWorkerKey(JSON, fs); Worker worker = module.workerPool.borrowObject(workerKey); assertThat(worker.workerKey).isEqualTo(workerKey); @@ -137,7 +137,7 @@ assertThat(storedEventHandler.getEvents().get(0).getMessage()) .contains("Worker factory configuration has changed"); assertThat(module.workerPool).isNotSameInstanceAs(oldPool); - WorkerKey workerKey = TestUtils.createWorkerKey(fs, "mnemonic", false); + WorkerKey workerKey = WorkerTestUtils.createWorkerKey(fs, "mnemonic", false); module.getWorkerPoolConfig().getWorkerFactory().create(workerKey); assertThat(fs.getPath("/otherRootDir/outputBase/bazel-workers").exists()).isTrue(); assertThat(oldLog.exists()).isTrue(); @@ -259,7 +259,7 @@ workerDir.getParentDirectory().setWritable(false); // But an actual worker cannot be created. - WorkerKey key = TestUtils.createWorkerKey(fs, "Work", /* proxied= */ false); + WorkerKey key = WorkerTestUtils.createWorkerKey(fs, "Work", /* proxied= */ false); assertThrows(IOException.class, () -> module.workerPool.borrowObject(key)); }
diff --git a/src/test/java/com/google/devtools/build/lib/worker/WorkerMultiplexerTest.java b/src/test/java/com/google/devtools/build/lib/worker/WorkerMultiplexerTest.java index 15824b6..8d16e32 100644 --- a/src/test/java/com/google/devtools/build/lib/worker/WorkerMultiplexerTest.java +++ b/src/test/java/com/google/devtools/build/lib/worker/WorkerMultiplexerTest.java
@@ -22,9 +22,9 @@ 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 com.google.devtools.build.lib.worker.TestUtils.FakeSubprocess; import com.google.devtools.build.lib.worker.WorkerProtocol.WorkRequest; import com.google.devtools.build.lib.worker.WorkerProtocol.WorkResponse; +import com.google.devtools.build.lib.worker.WorkerTestUtils.FakeSubprocess; import java.io.IOException; import java.io.OutputStream; import java.io.PipedInputStream; @@ -60,7 +60,7 @@ @Test public void testGetResponse_noOutstandingRequests() throws IOException, InterruptedException { - WorkerKey workerKey = TestUtils.createWorkerKey(fileSystem, "test1", true, "fakeBinary"); + WorkerKey workerKey = WorkerTestUtils.createWorkerKey(fileSystem, "test1", true, "fakeBinary"); WorkerMultiplexer multiplexer = WorkerMultiplexerManager.getInstance(workerKey, logPath); PipedInputStream serverInputStream = new PipedInputStream(); @@ -85,7 +85,7 @@ @Test public void testGetResponse_basicConcurrency() throws IOException, InterruptedException, ExecutionException { - WorkerKey workerKey = TestUtils.createWorkerKey(fileSystem, "test2", true, "fakeBinary"); + WorkerKey workerKey = WorkerTestUtils.createWorkerKey(fileSystem, "test2", true, "fakeBinary"); WorkerMultiplexer multiplexer = WorkerMultiplexerManager.getInstance(workerKey, logPath); PipedInputStream serverInputStream = new PipedInputStream(); @@ -123,7 +123,7 @@ @Test public void testGetResponse_slowMultiplexer() throws IOException, InterruptedException, ExecutionException { - WorkerKey workerKey = TestUtils.createWorkerKey(fileSystem, "test3", true, "fakeBinary"); + WorkerKey workerKey = WorkerTestUtils.createWorkerKey(fileSystem, "test3", true, "fakeBinary"); WorkerMultiplexer multiplexer = WorkerMultiplexerManager.getInstance(workerKey, logPath); PipedInputStream serverInputStream = new PipedInputStream(); @@ -193,7 +193,7 @@ @Test public void testGetResponse_slowProxy() throws IOException, InterruptedException, ExecutionException { - WorkerKey workerKey = TestUtils.createWorkerKey(fileSystem, "test4", true, "fakeBinary"); + WorkerKey workerKey = WorkerTestUtils.createWorkerKey(fileSystem, "test4", true, "fakeBinary"); WorkerMultiplexer multiplexer = WorkerMultiplexerManager.getInstance(workerKey, logPath); PipedInputStream serverInputStream = new PipedInputStream();
diff --git a/src/test/java/com/google/devtools/build/lib/worker/WorkerParserTest.java b/src/test/java/com/google/devtools/build/lib/worker/WorkerParserTest.java index df8c245..9ac9c9c 100644 --- a/src/test/java/com/google/devtools/build/lib/worker/WorkerParserTest.java +++ b/src/test/java/com/google/devtools/build/lib/worker/WorkerParserTest.java
@@ -40,42 +40,46 @@ @Test public void workerKeyComputationCheck() { - WorkerKey keyNomultiNoSandboxedNoDynamic = TestUtils.createWorkerKey(fs, false, false, false); + WorkerKey keyNomultiNoSandboxedNoDynamic = + WorkerTestUtils.createWorkerKey(fs, false, false, false); assertThat(keyNomultiNoSandboxedNoDynamic.isMultiplex()).isFalse(); assertThat(keyNomultiNoSandboxedNoDynamic.isSandboxed()).isFalse(); assertThat(keyNomultiNoSandboxedNoDynamic.getWorkerTypeName()).isEqualTo("worker"); - WorkerKey keyMultiNoSandboxedNoDynamic = TestUtils.createWorkerKey(fs, true, false, false); + WorkerKey keyMultiNoSandboxedNoDynamic = + WorkerTestUtils.createWorkerKey(fs, true, false, false); assertThat(keyMultiNoSandboxedNoDynamic.isMultiplex()).isTrue(); assertThat(keyMultiNoSandboxedNoDynamic.isSandboxed()).isFalse(); assertThat(keyMultiNoSandboxedNoDynamic.getWorkerTypeName()).isEqualTo("multiplex-worker"); - WorkerKey keyNomultiSandboxedNoDynamic = TestUtils.createWorkerKey(fs, false, true, false); + WorkerKey keyNomultiSandboxedNoDynamic = + WorkerTestUtils.createWorkerKey(fs, false, true, false); assertThat(keyNomultiSandboxedNoDynamic.isMultiplex()).isFalse(); assertThat(keyNomultiSandboxedNoDynamic.isSandboxed()).isTrue(); assertThat(keyNomultiSandboxedNoDynamic.getWorkerTypeName()).isEqualTo("worker"); - WorkerKey keyMultiSandboxedNoDynamic = TestUtils.createWorkerKey(fs, true, true, false); + WorkerKey keyMultiSandboxedNoDynamic = WorkerTestUtils.createWorkerKey(fs, true, true, false); assertThat(keyMultiSandboxedNoDynamic.isMultiplex()).isTrue(); assertThat(keyMultiSandboxedNoDynamic.isSandboxed()).isFalse(); assertThat(keyMultiSandboxedNoDynamic.getWorkerTypeName()).isEqualTo("multiplex-worker"); - WorkerKey keyNomultiNoSandboxedDynamic = TestUtils.createWorkerKey(fs, false, false, true); + WorkerKey keyNomultiNoSandboxedDynamic = + WorkerTestUtils.createWorkerKey(fs, false, false, true); assertThat(keyNomultiNoSandboxedDynamic.isMultiplex()).isFalse(); assertThat(keyNomultiNoSandboxedDynamic.isSandboxed()).isTrue(); assertThat(keyNomultiNoSandboxedDynamic.getWorkerTypeName()).isEqualTo("worker"); - WorkerKey keyMultiNoSandboxedDynamic = TestUtils.createWorkerKey(fs, true, false, true); + WorkerKey keyMultiNoSandboxedDynamic = WorkerTestUtils.createWorkerKey(fs, true, false, true); assertThat(keyMultiNoSandboxedDynamic.isMultiplex()).isFalse(); assertThat(keyMultiNoSandboxedDynamic.isSandboxed()).isTrue(); assertThat(keyMultiNoSandboxedDynamic.getWorkerTypeName()).isEqualTo("worker"); - WorkerKey keyNomultiSandboxedDynamic = TestUtils.createWorkerKey(fs, false, true, true); + WorkerKey keyNomultiSandboxedDynamic = WorkerTestUtils.createWorkerKey(fs, false, true, true); assertThat(keyNomultiSandboxedDynamic.isMultiplex()).isFalse(); assertThat(keyNomultiSandboxedDynamic.isSandboxed()).isTrue(); assertThat(keyNomultiSandboxedDynamic.getWorkerTypeName()).isEqualTo("worker"); - WorkerKey keyMultiSandboxedDynamic = TestUtils.createWorkerKey(fs, true, true, true); + WorkerKey keyMultiSandboxedDynamic = WorkerTestUtils.createWorkerKey(fs, true, true, true); assertThat(keyMultiSandboxedDynamic.isMultiplex()).isFalse(); assertThat(keyMultiSandboxedDynamic.isSandboxed()).isTrue(); assertThat(keyMultiSandboxedDynamic.getWorkerTypeName()).isEqualTo("worker"); @@ -88,19 +92,21 @@ options.workerMultiplex = true; WorkerKey keyNoMultiplexSandboxing = - TestUtils.createWorkerKeyWithRequirements(fs.getPath("/outputbase"), options, "Nom", false); + WorkerTestUtils.createWorkerKeyWithRequirements( + fs.getPath("/outputbase"), options, "Nom", false); assertThat(keyNoMultiplexSandboxing.isMultiplex()).isTrue(); assertThat(keyNoMultiplexSandboxing.isSandboxed()).isFalse(); assertThat(keyNoMultiplexSandboxing.getWorkerTypeName()).isEqualTo("multiplex-worker"); WorkerKey keyForcedSandboxedDynamic = - TestUtils.createWorkerKeyWithRequirements(fs.getPath("/outputbase"), options, "Nom", true); + WorkerTestUtils.createWorkerKeyWithRequirements( + fs.getPath("/outputbase"), options, "Nom", true); assertThat(keyForcedSandboxedDynamic.isMultiplex()).isFalse(); assertThat(keyForcedSandboxedDynamic.isSandboxed()).isTrue(); assertThat(keyForcedSandboxedDynamic.getWorkerTypeName()).isEqualTo("worker"); WorkerKey keyForcedeMultiplexSandboxing = - TestUtils.createWorkerKeyWithRequirements( + WorkerTestUtils.createWorkerKeyWithRequirements( fs.getPath("/outputbase"), options, "Nom", true, SUPPORTS_MULTIPLEX_SANDBOXING); assertThat(keyForcedeMultiplexSandboxing.isMultiplex()).isFalse(); assertThat(keyForcedeMultiplexSandboxing.isSandboxed()).isTrue(); @@ -109,20 +115,21 @@ options.multiplexSandboxing = true; WorkerKey keyBaseMultiplexNoSandbox = - TestUtils.createWorkerKeyWithRequirements(fs.getPath("/outputbase"), options, "Nom", false); + WorkerTestUtils.createWorkerKeyWithRequirements( + fs.getPath("/outputbase"), options, "Nom", false); assertThat(keyBaseMultiplexNoSandbox.isMultiplex()).isTrue(); assertThat(keyBaseMultiplexNoSandbox.isSandboxed()).isFalse(); assertThat(keyBaseMultiplexNoSandbox.getWorkerTypeName()).isEqualTo("multiplex-worker"); WorkerKey keyBaseMultiplexSandboxing = - TestUtils.createWorkerKeyWithRequirements( + WorkerTestUtils.createWorkerKeyWithRequirements( fs.getPath("/outputbase"), options, "Nom", false, SUPPORTS_MULTIPLEX_SANDBOXING); assertThat(keyBaseMultiplexSandboxing.isMultiplex()).isTrue(); assertThat(keyBaseMultiplexSandboxing.isSandboxed()).isTrue(); assertThat(keyBaseMultiplexSandboxing.getWorkerTypeName()).isEqualTo("multiplex-worker"); WorkerKey keyDynamicMultiplexSandboxing = - TestUtils.createWorkerKeyWithRequirements( + WorkerTestUtils.createWorkerKeyWithRequirements( fs.getPath("/outputbase"), options, "Nom", true, SUPPORTS_MULTIPLEX_SANDBOXING); assertThat(keyDynamicMultiplexSandboxing.isMultiplex()).isTrue(); assertThat(keyDynamicMultiplexSandboxing.isSandboxed()).isTrue(); @@ -136,7 +143,7 @@ options.workerExtraFlags = ImmutableList.of(); WorkerParser parser = new WorkerParser(null, options, null, null); - Spawn spawn = TestUtils.createSpawn(ImmutableList.of("--foo", "@bar"), ImmutableMap.of()); + Spawn spawn = WorkerTestUtils.createSpawn(ImmutableList.of("--foo", "@bar"), ImmutableMap.of()); List<String> flagFiles = new ArrayList<>(); ImmutableList<String> args = parser.splitSpawnArgsIntoWorkerArgsAndFlagFiles(spawn, flagFiles); assertThat(args).containsExactly("--foo", "--persistent_worker").inOrder(); @@ -152,7 +159,7 @@ Maps.immutableEntry("Other action", "--should_not_appear"), Maps.immutableEntry("Null", "--quxify")); WorkerParser parser = new WorkerParser(null, options, null, null); - Spawn spawn = TestUtils.createSpawn(ImmutableList.of("--foo", "@bar"), ImmutableMap.of()); + Spawn spawn = WorkerTestUtils.createSpawn(ImmutableList.of("--foo", "@bar"), ImmutableMap.of()); List<String> flagFiles = new ArrayList<>(); ImmutableList<String> args = parser.splitSpawnArgsIntoWorkerArgsAndFlagFiles(spawn, flagFiles); @@ -168,7 +175,7 @@ options.strictFlagfiles = false; WorkerParser parser = new WorkerParser(null, options, null, null); Spawn spawn = - TestUtils.createSpawn( + WorkerTestUtils.createSpawn( ImmutableList.of("--foo", "--flagfile=bar", "@@escaped", "@bar", "@bartoo", "--final"), ImmutableMap.of()); @@ -190,7 +197,7 @@ options.strictFlagfiles = true; WorkerParser parser = new WorkerParser(null, options, null, null); Spawn spawn = - TestUtils.createSpawn( + WorkerTestUtils.createSpawn( ImmutableList.of("--foo", "@@escaped", "--final", "@bar"), ImmutableMap.of()); List<String> flagFiles = new ArrayList<>(); @@ -220,7 +227,7 @@ options.workerExtraFlags = ImmutableList.of(); options.strictFlagfiles = true; WorkerParser parser = new WorkerParser(null, options, null, null); - Spawn spawn = TestUtils.createSpawn(ImmutableList.copyOf(args), ImmutableMap.of()); + Spawn spawn = WorkerTestUtils.createSpawn(ImmutableList.copyOf(args), ImmutableMap.of()); assertThrows( message,
diff --git a/src/test/java/com/google/devtools/build/lib/worker/WorkerPoolTest.java b/src/test/java/com/google/devtools/build/lib/worker/WorkerPoolTest.java index a4fb4d7..3794a3e 100644 --- a/src/test/java/com/google/devtools/build/lib/worker/WorkerPoolTest.java +++ b/src/test/java/com/google/devtools/build/lib/worker/WorkerPoolTest.java
@@ -14,7 +14,7 @@ package com.google.devtools.build.lib.worker; import static com.google.common.truth.Truth.assertThat; -import static com.google.devtools.build.lib.worker.TestUtils.createWorkerKey; +import static com.google.devtools.build.lib.worker.WorkerTestUtils.createWorkerKey; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.times;
diff --git a/src/test/java/com/google/devtools/build/lib/worker/WorkerSpawnRunnerTest.java b/src/test/java/com/google/devtools/build/lib/worker/WorkerSpawnRunnerTest.java index 5ad8343..ccc57c0 100644 --- a/src/test/java/com/google/devtools/build/lib/worker/WorkerSpawnRunnerTest.java +++ b/src/test/java/com/google/devtools/build/lib/worker/WorkerSpawnRunnerTest.java
@@ -15,7 +15,7 @@ package com.google.devtools.build.lib.worker; import static com.google.common.truth.Truth.assertThat; -import static com.google.devtools.build.lib.worker.TestUtils.createWorkerKey; +import static com.google.devtools.build.lib.worker.WorkerTestUtils.createWorkerKey; import static org.junit.Assert.assertThrows; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; @@ -70,7 +70,6 @@ import java.io.IOException; import java.util.Optional; import java.util.concurrent.Semaphore; -import org.apache.commons.pool2.PooledObject; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -113,24 +112,6 @@ when(resourceHandle.getWorker()).thenReturn(worker); } - private WorkerPoolImplLegacy createWorkerPool() { - return new WorkerPoolImplLegacy( - new WorkerPoolConfig( - new WorkerFactory(fs.getPath("/workerBase"), options) { - @Override - public Worker create(WorkerKey key) { - return worker; - } - - @Override - public boolean validateObject(WorkerKey key, PooledObject<Worker> p) { - return true; - } - }, - ImmutableList.of(), - ImmutableList.of())); - } - @Test public void testExecInWorker_happyPath() throws ExecException, InterruptedException, IOException { WorkerSpawnRunner runner = createWorkerSpawnRunner(new WorkerOptions()); @@ -172,7 +153,7 @@ new SandboxHelpers(), execRoot, ImmutableList.of(), - createWorkerPool(), + WorkerTestUtils.createTestWorkerPool(worker), reporter, localEnvProvider, /* binTools= */ null, @@ -575,7 +556,7 @@ new SandboxHelpers(), fs.getPath("/execRoot"), ImmutableList.of(), - createWorkerPool(), + WorkerTestUtils.createTestWorkerPool(worker), reporter, localEnvProvider, /* binTools= */ null,
diff --git a/src/test/java/com/google/devtools/build/lib/worker/WorkerTest.java b/src/test/java/com/google/devtools/build/lib/worker/WorkerTest.java index 05b9336..d58edbd 100644 --- a/src/test/java/com/google/devtools/build/lib/worker/WorkerTest.java +++ b/src/test/java/com/google/devtools/build/lib/worker/WorkerTest.java
@@ -29,11 +29,11 @@ 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 com.google.devtools.build.lib.worker.TestUtils.FakeSubprocess; -import com.google.devtools.build.lib.worker.TestUtils.TestWorker; import com.google.devtools.build.lib.worker.WorkerProtocol.Input; import com.google.devtools.build.lib.worker.WorkerProtocol.WorkRequest; import com.google.devtools.build.lib.worker.WorkerProtocol.WorkResponse; +import com.google.devtools.build.lib.worker.WorkerTestUtils.FakeSubprocess; +import com.google.devtools.build.lib.worker.WorkerTestUtils.TestWorker; import com.google.protobuf.ByteString; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -71,7 +71,7 @@ Preconditions.checkState( workerForCleanup == null, "createTestWorker can only be called once per test"); - WorkerKey key = TestUtils.createWorkerKey(protocolFormat, fs); + WorkerKey key = WorkerTestUtils.createWorkerKey(protocolFormat, fs); FakeSubprocess fakeSubprocess = new FakeSubprocess(outputStreamBytes);
diff --git a/src/test/java/com/google/devtools/build/lib/worker/TestUtils.java b/src/test/java/com/google/devtools/build/lib/worker/WorkerTestUtils.java similarity index 90% rename from src/test/java/com/google/devtools/build/lib/worker/TestUtils.java rename to src/test/java/com/google/devtools/build/lib/worker/WorkerTestUtils.java index c7c4355..a31802a 100644 --- a/src/test/java/com/google/devtools/build/lib/worker/TestUtils.java +++ b/src/test/java/com/google/devtools/build/lib/worker/WorkerTestUtils.java
@@ -38,9 +38,9 @@ import java.io.OutputStream; /** Utilities that come in handy when unit-testing the worker code. */ -class TestUtils { +public class WorkerTestUtils { - private TestUtils() {} + private WorkerTestUtils() {} /** A helper method to create a fake Spawn with the given execution info. */ static Spawn createSpawn(ImmutableMap<String, String> executionInfo) { @@ -320,4 +320,46 @@ return 0; } } + + public static WorkerPool createTestWorkerPool(Worker worker) { + return new WorkerPool() { + @Override + public int getMaxTotalPerKey(WorkerKey key) { + return 1; + } + + @Override + public int getNumActive(WorkerKey key) { + return 0; + } + + @Override + public ImmutableSet<Integer> evictWorkers(ImmutableSet<Integer> workerIdsToEvict) + throws InterruptedException { + return ImmutableSet.of(); + } + + @Override + public ImmutableSet<Integer> getIdleWorkers() throws InterruptedException { + return ImmutableSet.of(); + } + + @Override + public Worker borrowObject(WorkerKey key) throws IOException, InterruptedException { + return worker; + } + + @Override + public void returnObject(WorkerKey key, Worker obj) {} + + @Override + public void invalidateObject(WorkerKey key, Worker obj) throws InterruptedException {} + + @Override + public void reset() {} + + @Override + public void close() {} + }; + } }