Refactor TestTargetProperties to use shared code to determine whether
an action is remotable. Also rename isLocal() to isRemotable() (and
invert call sides) to made the code easier to understand.
RELNOTES: None
PiperOrigin-RevId: 260706656
diff --git a/src/main/java/com/google/devtools/build/lib/actions/ExecutionRequirements.java b/src/main/java/com/google/devtools/build/lib/actions/ExecutionRequirements.java
index 9f0645c..d7bb88a 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/ExecutionRequirements.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/ExecutionRequirements.java
@@ -19,6 +19,7 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.packages.Rule;
+import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -218,4 +219,10 @@
/** Use this to request eager fetching of a single remote output into local memory. */
public static final String REMOTE_EXECUTION_INLINE_OUTPUTS = "internal-inline-outputs";
+
+ public static boolean maybeExecutedRemotely(Set<String> executionRequirements) {
+ return !executionRequirements.contains(ExecutionRequirements.LOCAL)
+ && !executionRequirements.contains(ExecutionRequirements.NO_REMOTE)
+ && !executionRequirements.contains(ExecutionRequirements.NO_REMOTE_EXEC);
+ }
}
diff --git a/src/main/java/com/google/devtools/build/lib/actions/Spawns.java b/src/main/java/com/google/devtools/build/lib/actions/Spawns.java
index 6bd5ee6..d90cd1d 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/Spawns.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/Spawns.java
@@ -42,9 +42,7 @@
/** Returns {@code true} if {@code spawn} may be executed remotely. */
public static boolean mayBeExecutedRemotely(Spawn spawn) {
- return !spawn.getExecutionInfo().containsKey(ExecutionRequirements.LOCAL)
- && !spawn.getExecutionInfo().containsKey(ExecutionRequirements.NO_REMOTE)
- && !spawn.getExecutionInfo().containsKey(ExecutionRequirements.NO_REMOTE_EXEC);
+ return ExecutionRequirements.maybeExecutedRemotely(spawn.getExecutionInfo().keySet());
}
/** Returns whether a Spawn can be executed in a sandbox environment. */
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 962dca3..f3f98c2 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
@@ -338,7 +338,7 @@
fp.addString(testProperties.getSize().toString());
fp.addString(testProperties.getTimeout().toString());
fp.addStrings(testProperties.getTags());
- fp.addInt(testProperties.isLocal() ? 1 : 0);
+ fp.addInt(testProperties.isRemotable() ? 1 : 0);
fp.addInt(shardNum);
fp.addInt(executionSettings.getTotalShards());
fp.addInt(runNumber);
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/test/TestTargetProperties.java b/src/main/java/com/google/devtools/build/lib/analysis/test/TestTargetProperties.java
index 1351eb2..e7a8354 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/test/TestTargetProperties.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/test/TestTargetProperties.java
@@ -63,7 +63,7 @@
private final TestSize size;
private final TestTimeout timeout;
private final List<String> tags;
- private final boolean isLocal;
+ private final boolean isRemotable;
private final boolean isFlaky;
private final boolean isExternal;
private final String language;
@@ -99,7 +99,7 @@
ruleContext.getConfiguration().modifyExecutionInfo(executionInfo, TestRunnerAction.MNEMONIC);
this.executionInfo = ImmutableMap.copyOf(executionInfo);
- isLocal = executionInfo.containsKey(ExecutionRequirements.LOCAL);
+ isRemotable = ExecutionRequirements.maybeExecutedRemotely(executionInfo.keySet());
language = TargetUtils.getRuleLanguage(rule);
}
@@ -116,8 +116,8 @@
return tags;
}
- public boolean isLocal() {
- return isLocal;
+ public boolean isRemotable() {
+ return isRemotable;
}
public boolean isFlaky() {
diff --git a/src/test/java/com/google/devtools/build/lib/rules/test/SkylarkTestingModuleTest.java b/src/test/java/com/google/devtools/build/lib/rules/test/SkylarkTestingModuleTest.java
index d2bfd5b..f2a6a3d 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/test/SkylarkTestingModuleTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/test/SkylarkTestingModuleTest.java
@@ -105,6 +105,6 @@
TestRunnerAction testAction = (TestRunnerAction) getGeneratingAction(
TestProvider.getTestStatusArtifacts(skylarkTarget).get(0));
- assertThat(testAction.getTestProperties().isLocal()).isTrue();
+ assertThat(testAction.getTestProperties().isRemotable()).isFalse();
}
}