aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java
diff options
context:
space:
mode:
authorGravatar Cal Peyser <cpeyser@google.com>2016-06-07 14:05:47 +0000
committerGravatar Yun Peng <pcloudy@google.com>2016-06-07 17:53:12 +0000
commit133638cf44a6d0428beec12169c205a447f48ec0 (patch)
tree9b2f8432446fd3be714541b7010377e78fa5b8a0 /src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java
parent6eea9bd27fc88129ccb2d74c1b550e83ebf39f17 (diff)
Allow flags to be applied to an action using an action_config. A flag set on
an action_config specifies no action, and is automatically applied to the action being configured. -- MOS_MIGRATED_REVID=124240929
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java')
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java
index 4d64a293cb..4b13ac0d16 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java
@@ -23,6 +23,7 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Multimap;
import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
+import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.ActionConfig;
import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.ExpansionException;
import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration;
import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.Variables;
@@ -847,4 +848,42 @@ public class CcToolchainFeaturesTest {
assertThat(e.getMessage()).contains("multiple action configs for action 'action-a'");
}
}
+
+ @Test
+ public void testFlagsFromActionConfig() throws Exception {
+ FeatureConfiguration featureConfiguration =
+ buildFeatures(
+ "action_config {",
+ " config_name: 'c++-compile'",
+ " action_name: 'c++-compile'",
+ " flag_set {",
+ " flag_group {flag: 'foo'}",
+ " }",
+ "}")
+ .getFeatureConfiguration("c++-compile");
+ List<String> commandLine =
+ featureConfiguration.getCommandLine("c++-compile", createVariables());
+ assertThat(commandLine).contains("foo");
+ ;
+ }
+
+ @Test
+ public void testErrorForFlagFromActionConfigWithSpecifiedAction() throws Exception {
+ try {
+ buildFeatures(
+ "action_config {",
+ " config_name: 'c++-compile'",
+ " action_name: 'c++-compile'",
+ " flag_set {",
+ " action: 'c++-compile'",
+ " flag_group {flag: 'foo'}",
+ " }",
+ "}")
+ .getFeatureConfiguration("c++-compile");
+ fail("Should throw InvalidConfigurationException");
+ } catch (InvalidConfigurationException e) {
+ assertThat(e.getMessage())
+ .contains(String.format(ActionConfig.FLAG_SET_WITH_ACTION_ERROR, "c++-compile"));
+ }
+ }
}