diff options
author | Cal Peyser <cpeyser@google.com> | 2016-06-07 14:05:47 +0000 |
---|---|---|
committer | Yun Peng <pcloudy@google.com> | 2016-06-07 17:53:12 +0000 |
commit | 133638cf44a6d0428beec12169c205a447f48ec0 (patch) | |
tree | 9b2f8432446fd3be714541b7010377e78fa5b8a0 /src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java | |
parent | 6eea9bd27fc88129ccb2d74c1b550e83ebf39f17 (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.java | 39 |
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")); + } + } } |