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;