remote: Don't cache test if marked "external". Fixes #3362

RELNOTES: None.
PiperOrigin-RevId: 161937673
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 3191395..8ef6049 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
@@ -20,6 +20,7 @@
 import com.google.devtools.build.lib.actions.Artifact;
 import com.google.devtools.build.lib.actions.EnvironmentalExecException;
 import com.google.devtools.build.lib.actions.ExecException;
+import com.google.devtools.build.lib.actions.ExecutionRequirements;
 import com.google.devtools.build.lib.actions.ExecutionStrategy;
 import com.google.devtools.build.lib.actions.ResourceSet;
 import com.google.devtools.build.lib.actions.SimpleSpawn;
@@ -47,7 +48,6 @@
 import com.google.devtools.build.lib.view.test.TestStatus.TestResultData.Builder;
 import java.io.Closeable;
 import java.io.IOException;
-import java.util.HashMap;
 import java.util.Map;
 
 /** Runs TestRunnerAction actions. */
@@ -107,10 +107,13 @@
 
     ResolvedPaths resolvedPaths = action.resolve(execRoot);
 
-    Map<String, String> info = new HashMap<>();
+    ImmutableMap.Builder<String, String> executionInfo = ImmutableMap.builder();
+    if (!action.shouldCacheResult()) {
+      executionInfo.put(ExecutionRequirements.NO_CACHE, "");
+    }
     // This key is only understood by StandaloneSpawnStrategy.
-    info.put("timeout", "" + getTimeout(action));
-    info.putAll(action.getTestProperties().getExecutionInfo());
+    executionInfo.put("timeout", "" + getTimeout(action));
+    executionInfo.putAll(action.getTestProperties().getExecutionInfo());
 
     ResourceSet localResourceUsage =
         action
@@ -123,7 +126,7 @@
             action,
             getArgs(COLLECT_COVERAGE, action),
             ImmutableMap.copyOf(env),
-            ImmutableMap.copyOf(info),
+            executionInfo.build(),
             new RunfilesSupplierImpl(
                 runfilesDir.relativeTo(execRoot), action.getExecutionSettings().getRunfiles()),
             /*inputs=*/ ImmutableList.copyOf(action.getInputs()),