Move test.stderr append logic to StandaloneTestStrategy.

RELNOTES: None
PiperOrigin-RevId: 232674874
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/test/TestRunnerAction.java b/src/main/java/com/google/devtools/build/lib/analysis/test/TestRunnerAction.java
index c3b0e78..4339aac 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/test/TestRunnerAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/test/TestRunnerAction.java
@@ -263,6 +263,9 @@
     }
     if (execRoot != null) {
       ResolvedPaths resolvedPaths = resolve(execRoot);
+      if (resolvedPaths.getTestStderr().exists()) {
+        builder.add(Pair.of(TestFileNameConstants.TEST_STDERR, resolvedPaths.getTestStderr()));
+      }
       if (resolvedPaths.getXmlOutputPath().exists()) {
         builder.add(Pair.of(TestFileNameConstants.TEST_XML, resolvedPaths.getXmlOutputPath()));
       }
diff --git a/src/main/java/com/google/devtools/build/lib/buildeventstream/TestFileNameConstants.java b/src/main/java/com/google/devtools/build/lib/buildeventstream/TestFileNameConstants.java
index a45cb19..e4237de 100644
--- a/src/main/java/com/google/devtools/build/lib/buildeventstream/TestFileNameConstants.java
+++ b/src/main/java/com/google/devtools/build/lib/buildeventstream/TestFileNameConstants.java
@@ -25,6 +25,7 @@
   public static final String SPLIT_LOGS = "test.splitlogs";
   public static final String TEST_INFRASTRUCTURE_FAILURE = "test.infrastructure_failure";
   public static final String TEST_LOG = "test.log";
+  public static final String TEST_STDERR = "test.stderr";
   public static final String TEST_WARNINGS = "test.warnings";
   public static final String TEST_XML = "test.xml";
   public static final String UNDECLARED_OUTPUTS_ANNOTATIONS = "test.outputs_manifest__ANNOTATIONS";
diff --git a/src/main/java/com/google/devtools/build/lib/exec/StandaloneTestStrategy.java b/src/main/java/com/google/devtools/build/lib/exec/StandaloneTestStrategy.java
index 1b55545..07bb569 100644
--- a/src/main/java/com/google/devtools/build/lib/exec/StandaloneTestStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/exec/StandaloneTestStrategy.java
@@ -18,6 +18,7 @@
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
+import com.google.common.io.ByteStreams;
 import com.google.devtools.build.lib.actions.ActionExecutionContext;
 import com.google.devtools.build.lib.actions.ActionInputHelper;
 import com.google.devtools.build.lib.actions.Artifact;
@@ -44,6 +45,7 @@
 import com.google.devtools.build.lib.util.OS;
 import com.google.devtools.build.lib.util.Pair;
 import com.google.devtools.build.lib.util.io.FileOutErr;
+import com.google.devtools.build.lib.vfs.FileStatus;
 import com.google.devtools.build.lib.vfs.FileSystemUtils;
 import com.google.devtools.build.lib.vfs.Path;
 import com.google.devtools.build.lib.vfs.PathFragment;
@@ -52,6 +54,8 @@
 import com.google.devtools.build.lib.view.test.TestStatus.TestResultData;
 import java.io.Closeable;
 import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
 import java.time.Duration;
 import java.util.ArrayList;
 import java.util.List;
@@ -424,6 +428,26 @@
     }
   }
 
+  /** In rare cases, we might write something to stderr. Append it to the real test.log. */
+  protected static void appendStderr(Path stdOut, Path stdErr) throws IOException {
+    FileStatus stat = stdErr.statNullable();
+    if (stat != null) {
+      try {
+        if (stat.getSize() > 0) {
+          if (stdOut.exists()) {
+            stdOut.setWritable(true);
+          }
+          try (OutputStream out = stdOut.getOutputStream(true);
+              InputStream in = stdErr.getInputStream()) {
+            ByteStreams.copy(in, out);
+          }
+        }
+      } finally {
+        stdErr.delete();
+      }
+    }
+  }
+
   private static void extractExecutionInfo(
       SpawnResult spawnResult,
       TestResultData.Builder result,
diff --git a/src/main/java/com/google/devtools/build/lib/exec/TestStrategy.java b/src/main/java/com/google/devtools/build/lib/exec/TestStrategy.java
index 7b63f24..737d7ca 100644
--- a/src/main/java/com/google/devtools/build/lib/exec/TestStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/exec/TestStrategy.java
@@ -42,7 +42,6 @@
 import com.google.devtools.build.lib.util.OS;
 import com.google.devtools.build.lib.util.io.FileWatcher;
 import com.google.devtools.build.lib.util.io.OutErr;
-import com.google.devtools.build.lib.vfs.FileStatus;
 import com.google.devtools.build.lib.vfs.FileSystemUtils;
 import com.google.devtools.build.lib.vfs.Path;
 import com.google.devtools.build.lib.vfs.PathFragment;
@@ -51,7 +50,6 @@
 import java.io.Closeable;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.OutputStream;
 import java.time.Duration;
 import java.util.Arrays;
 import java.util.HashMap;
@@ -427,26 +425,6 @@
         .handle(Event.progress(testAction.getProgressMessage()));
   }
 
-  /** In rare cases, we might write something to stderr. Append it to the real test.log. */
-  protected static void appendStderr(Path stdOut, Path stdErr) throws IOException {
-    FileStatus stat = stdErr.statNullable();
-    if (stat != null) {
-      try {
-        if (stat.getSize() > 0) {
-          if (stdOut.exists()) {
-            stdOut.setWritable(true);
-          }
-          try (OutputStream out = stdOut.getOutputStream(true);
-              InputStream in = stdErr.getInputStream()) {
-            ByteStreams.copy(in, out);
-          }
-        }
-      } finally {
-        stdErr.delete();
-      }
-    }
-  }
-
   /** Implements the --test_output=streamed option. */
   protected static class StreamedTestOutput implements Closeable {
     private final TestLogHelper.FilterTestHeaderOutputStream headerFilter;