Allow test strategies to treat exclusive tests as regular parallel tests.
PiperOrigin-RevId: 292337914
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/AnalysisResult.java b/src/main/java/com/google/devtools/build/lib/analysis/AnalysisResult.java
index 01a490b..c4aedce 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/AnalysisResult.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/AnalysisResult.java
@@ -17,6 +17,7 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.ImmutableSortedSet;
+import com.google.common.collect.Sets;
import com.google.devtools.build.lib.actions.ActionGraph;
import com.google.devtools.build.lib.actions.PackageRoots;
import com.google.devtools.build.lib.analysis.config.BuildConfigurationCollection;
@@ -167,4 +168,27 @@
public ImmutableSortedSet<String> getNonSymlinkedDirectoriesUnderExecRoot() {
return nonSymlinkedDirectoriesUnderExecRoot;
}
+
+ /**
+ * Returns an equivalent {@link AnalysisResult}, except with exclusive tests treated as parallel
+ * tests.
+ */
+ public AnalysisResult withExclusiveTestsAsParallelTests() {
+ return new AnalysisResult(
+ configurations,
+ targetsToBuild,
+ aspects,
+ targetsToTest,
+ targetsToSkip,
+ error,
+ actionGraph,
+ topLevelArtifactsToOwnerLabels,
+ Sets.union(parallelTests, exclusiveTests).immutableCopy(),
+ /*exclusiveTests=*/ ImmutableSet.of(),
+ topLevelContext,
+ packageRoots,
+ workspaceName,
+ topLevelTargetsWithConfigs,
+ nonSymlinkedDirectoriesUnderExecRoot);
+ }
}