Refactor: remove unnecessary ImmutableXXX.copyOf()
It's often a code smell if a constructor makes an
immutable copy of its argument, because often
those arguments could easily be an immutable
collection.
In this CL I mark arguments of such ctors as
Immutable and let the caller make the copy that
the ctor used to.
This CL doesn't introduce any new copies, because
it merely moves the copy calls to the call sites
(where copying is needed at all).
PiperOrigin-RevId: 289612603
diff --git a/src/test/java/com/google/devtools/build/lib/windows/WindowsSubprocessTest.java b/src/test/java/com/google/devtools/build/lib/windows/WindowsSubprocessTest.java
index 77ccd85..8c3ad38 100644
--- a/src/test/java/com/google/devtools/build/lib/windows/WindowsSubprocessTest.java
+++ b/src/test/java/com/google/devtools/build/lib/windows/WindowsSubprocessTest.java
@@ -17,6 +17,7 @@
import static com.google.common.truth.Truth.assertThat;
import static java.nio.charset.StandardCharsets.UTF_8;
+import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.shell.ShellUtils;
import com.google.devtools.build.lib.shell.Subprocess;
@@ -66,7 +67,7 @@
public void testSystemRootIsSetByDefault() throws Exception {
SubprocessBuilder subprocessBuilder = new SubprocessBuilder(WindowsSubprocessFactory.INSTANCE);
subprocessBuilder.setWorkingDirectory(new File("."));
- subprocessBuilder.setArgv(mockBinary, "-jar", mockSubprocess, "O$SYSTEMROOT");
+ subprocessBuilder.setArgv(ImmutableList.of(mockBinary, "-jar", mockSubprocess, "O$SYSTEMROOT"));
process = subprocessBuilder.start();
process.waitFor();
assertThat(process.exitValue()).isEqualTo(0);
@@ -80,7 +81,8 @@
public void testSystemDriveIsSetByDefault() throws Exception {
SubprocessBuilder subprocessBuilder = new SubprocessBuilder(WindowsSubprocessFactory.INSTANCE);
subprocessBuilder.setWorkingDirectory(new File("."));
- subprocessBuilder.setArgv(mockBinary, "-jar", mockSubprocess, "O$SYSTEMDRIVE");
+ subprocessBuilder.setArgv(
+ ImmutableList.of(mockBinary, "-jar", mockSubprocess, "O$SYSTEMDRIVE"));
process = subprocessBuilder.start();
process.waitFor();
assertThat(process.exitValue()).isEqualTo(0);
@@ -94,7 +96,7 @@
public void testSystemRootIsSet() throws Exception {
SubprocessBuilder subprocessBuilder = new SubprocessBuilder(WindowsSubprocessFactory.INSTANCE);
subprocessBuilder.setWorkingDirectory(new File("."));
- subprocessBuilder.setArgv(mockBinary, "-jar", mockSubprocess, "O$SYSTEMROOT");
+ subprocessBuilder.setArgv(ImmutableList.of(mockBinary, "-jar", mockSubprocess, "O$SYSTEMROOT"));
// Case shouldn't matter on Windows
subprocessBuilder.setEnv(ImmutableMap.of("SystemRoot", "C:\\MySystemRoot"));
process = subprocessBuilder.start();
@@ -110,7 +112,8 @@
public void testSystemDriveIsSet() throws Exception {
SubprocessBuilder subprocessBuilder = new SubprocessBuilder(WindowsSubprocessFactory.INSTANCE);
subprocessBuilder.setWorkingDirectory(new File("."));
- subprocessBuilder.setArgv(mockBinary, "-jar", mockSubprocess, "O$SYSTEMDRIVE");
+ subprocessBuilder.setArgv(
+ ImmutableList.of(mockBinary, "-jar", mockSubprocess, "O$SYSTEMDRIVE"));
// Case shouldn't matter on Windows
subprocessBuilder.setEnv(ImmutableMap.of("SystemDrive", "X:"));
process = subprocessBuilder.start();
@@ -152,7 +155,7 @@
SubprocessBuilder subprocessBuilder =
new SubprocessBuilder(WindowsSubprocessFactory.INSTANCE);
subprocessBuilder.setWorkingDirectory(new File("."));
- subprocessBuilder.setArgv(printArgExe, arg.original);
+ subprocessBuilder.setArgv(ImmutableList.of(printArgExe, arg.original));
process = subprocessBuilder.start();
process.waitFor();
assertThat(process.exitValue()).isEqualTo(0);