Do not trim test configuration when --nodistinct_host_configuration is on.
Background is in b/117932061. The infrastructure avoids trimming the host configuration and thus the untrimmed target configuration is used in various places when --nodistinct_host_configuration is on. This leads to potential issues.
This may fixable more principally by allowing and ensuring the effective host configuration is trimmed when --nodistinct_host_configuration is in use; however, this requires far more intricate adjustments to configuration resolution.
PiperOrigin-RevId: 364898085
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BUILD b/src/main/java/com/google/devtools/build/lib/analysis/BUILD
index a85fba4..6bcce1e 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/analysis/BUILD
@@ -2348,6 +2348,7 @@
deps = [
":config/build_options",
":config/build_options_cache",
+ ":config/core_options",
":config/fragment_options",
":config/transitions/no_transition",
":config/transitions/patch_transition",
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/test/TestTrimmingTransitionFactory.java b/src/main/java/com/google/devtools/build/lib/analysis/test/TestTrimmingTransitionFactory.java
index 01cc600..48a317c 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/test/TestTrimmingTransitionFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/test/TestTrimmingTransitionFactory.java
@@ -17,6 +17,7 @@
import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.analysis.config.BuildOptionsCache;
import com.google.devtools.build.lib.analysis.config.BuildOptionsView;
+import com.google.devtools.build.lib.analysis.config.CoreOptions;
import com.google.devtools.build.lib.analysis.config.FragmentOptions;
import com.google.devtools.build.lib.analysis.config.transitions.NoTransition;
import com.google.devtools.build.lib.analysis.config.transitions.PatchTransition;
@@ -52,7 +53,7 @@
@Override
public ImmutableSet<Class<? extends FragmentOptions>> requiresOptionFragments() {
- return ImmutableSet.of(TestOptions.class);
+ return ImmutableSet.of(TestOptions.class, CoreOptions.class);
}
@Override
@@ -61,9 +62,14 @@
// nothing to do, already trimmed this fragment
return originalOptions.underlying();
}
+ CoreOptions originalCoreOptions = originalOptions.get(CoreOptions.class);
TestOptions originalTestOptions = originalOptions.get(TestOptions.class);
- if (!originalTestOptions.trimTestConfiguration) {
+ if (!originalTestOptions.trimTestConfiguration
+ || !originalCoreOptions.useDistinctHostConfiguration) {
// nothing to do, trimming is disabled
+ // Due to repercussions of b/117932061, do not trim when `--nodistinct_host_configuration`
+ // TODO(twigg): See if can remove distinct_host_configuration read here and thus
+ // dependency on CoreOptions above.
return originalOptions.underlying();
}
return cache.applyTransition(