support in-memory outputs in spawn result
split out from #7778
Closes #7791.
PiperOrigin-RevId: 239638546
diff --git a/src/test/java/com/google/devtools/build/lib/actions/SpawnResultTest.java b/src/test/java/com/google/devtools/build/lib/actions/SpawnResultTest.java
index 6dccb47..6bedfc9 100644
--- a/src/test/java/com/google/devtools/build/lib/actions/SpawnResultTest.java
+++ b/src/test/java/com/google/devtools/build/lib/actions/SpawnResultTest.java
@@ -15,6 +15,8 @@
import static com.google.common.truth.Truth.assertThat;
+import com.google.devtools.build.lib.actions.SpawnResult.Status;
+import com.google.protobuf.ByteString;
import java.time.Duration;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -50,4 +52,22 @@
assertThat(r.getDetailMessage("", "", false, false))
.contains("(failed due to timeout.)");
}
+
+ @Test
+ public void inMemoryContents() throws Exception {
+ ActionInput output = ActionInputHelper.fromPath("/foo/bar");
+ ByteString contents = ByteString.copyFromUtf8("hello world");
+
+ SpawnResult r =
+ new SpawnResult.Builder()
+ .setStatus(Status.SUCCESS)
+ .setExitCode(0)
+ .setRunnerName("test")
+ .setInMemoryOutput(output, contents)
+ .build();
+
+ assertThat(ByteString.readFrom(r.getInMemoryOutput(output))).isEqualTo(contents);
+ assertThat(r.getInMemoryOutput(null)).isEqualTo(null);
+ assertThat(r.getInMemoryOutput(ActionInputHelper.fromPath("/does/not/exist"))).isEqualTo(null);
+ }
}