aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com
diff options
context:
space:
mode:
authorGravatar Greg Estren <gregce@google.com>2016-09-21 21:18:19 +0000
committerGravatar Laszlo Csomor <laszlocsomor@google.com>2016-09-22 09:54:39 +0000
commit1d8ba90781fb3075cdb10ee788971cc3a7c96299 (patch)
tree23bc2be230e30cf426a637c45890860e686fd8f3 /src/test/java/com
parentf0a716ae7145f1e815cd59b8d71ff037c40a3fa5 (diff)
Split dynamic configurations mode into:
--experimental_dynamic_configs=off - don't use dynamic configs --experimental_dynamic_configs=on - use dynamic configs with trimmed fragments --experimental_dynamic_configs=notrim - use dynamic configs with all fragments This lets us decouple two independent dimensions of dynamic configurations: 1) being able to trigger new configurations and transitions anywhere and 2) only including the fragments needed by a target's transitive closure. 2) is likely to take much more time and effort to properly finesse (three notable challenges: late-bound attributes, aspects, and dynamic shedding of output path names). But 1) by itself already yields significant benefits. So in the name of starting to shift the config work from backend theory to stuff real builds actually use, this change lets us focus on productionizing 1) without blocking on getting all of 2) working first. tl;dr: iterable deployment and all that. -- MOS_MIGRATED_REVID=133874661
Diffstat (limited to 'src/test/java/com')
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java4
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java9
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java4
4 files changed, 11 insertions, 8 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java b/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java
index 98455b7e13..73642c5fe4 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java
@@ -1182,7 +1182,7 @@ public class BuildViewTest extends BuildViewTestBase {
scratch.file("foo/BUILD",
"sh_library(name='x', ",
" srcs=['x.sh'])");
- useConfiguration("--experimental_dynamic_configs");
+ useConfiguration("--experimental_dynamic_configs=on");
AnalysisResult res = update("//foo:x");
ConfiguredTarget topLevelTarget = Iterables.getOnlyElement(res.getTargetsToBuild());
assertThat(topLevelTarget.getConfiguration().getAllFragments().keySet()).containsExactly(
@@ -1199,7 +1199,7 @@ public class BuildViewTest extends BuildViewTestBase {
"java_library(",
" name = 'javalib',",
" srcs = ['javalib.java'])");
- useConfiguration("--experimental_dynamic_configs", "--experimental_disable_jvm");
+ useConfiguration("--experimental_dynamic_configs=on", "--experimental_disable_jvm");
reporter.removeHandler(failFastHandler);
try {
update("//foo:ccbin");
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java b/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java
index 8f9e44311b..b1bdd87e3d 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java
@@ -298,9 +298,12 @@ public class BuildConfigurationTest extends ConfigurationTestCase {
@Test
public void testNoDistinctHostConfigurationUnsupportedWithDynamicConfigs() throws Exception {
- checkError(
- "--nodistinct_host_configuration does not currently work with dynamic configurations",
- "--nodistinct_host_configuration", "--experimental_dynamic_configs");
+ String expectedError =
+ "--nodistinct_host_configuration does not currently work with dynamic configurations";
+ checkError(expectedError,
+ "--nodistinct_host_configuration", "--experimental_dynamic_configs=on");
+ checkError(expectedError,
+ "--nodistinct_host_configuration", "--experimental_dynamic_configs=notrim");
}
@Test
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
index 2ea8887392..a91c4000cd 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
@@ -218,7 +218,7 @@ public abstract class AnalysisTestCase extends FoundationTestCase {
optionsParser.parse(new String[] {"--default_visibility=public" });
optionsParser.parse(args);
if (defaultFlags().contains(Flag.DYNAMIC_CONFIGURATIONS)) {
- optionsParser.parse("--experimental_dynamic_configs");
+ optionsParser.parse("--experimental_dynamic_configs=on");
}
InvocationPolicyEnforcer optionsPolicyEnforcer = analysisMock.getInvocationPolicyEnforcer();
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
index dc540061ab..1f76af4fc0 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
@@ -391,7 +391,7 @@ public abstract class BuildViewTestCase extends FoundationTestCase {
String[] actualArgs;
if (useDynamicConfigs) {
actualArgs = Arrays.copyOf(args, args.length + 1);
- actualArgs[args.length] = "--experimental_dynamic_configs";
+ actualArgs[args.length] = "--experimental_dynamic_configs=on";
} else {
actualArgs = args;
}
@@ -1282,7 +1282,7 @@ public abstract class BuildViewTestCase extends FoundationTestCase {
BuildConfiguration config = targetConfig;
if (targetConfig.useDynamicConfigurations()) {
try {
- config = view.trimConfigurationForTesting(getTarget(label), targetConfig, reporter);
+ config = view.getDynamicConfigurationForTesting(getTarget(label), targetConfig, reporter);
} catch (Exception e) {
throw new RuntimeException(e);
}