aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/common
diff options
context:
space:
mode:
authorGravatar ccalvarin <ccalvarin@google.com>2018-04-17 07:48:38 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-04-17 07:50:36 -0700
commit9c8c77502ff52907a327e6bdc9ac282da0af6b44 (patch)
tree14b05cdc2eb7db3231a05c6a119d0c6aba876495 /src/test/java/com/google/devtools/common
parenta4ca5e77ea1cd2ee86632af168f107ea7be9e980 (diff)
Make attempting to change --config in invocation policy an error.
It will not work as expected, since config is already expanded by this point in options processing. RELNOTES: None. PiperOrigin-RevId: 193196664
Diffstat (limited to 'src/test/java/com/google/devtools/common')
-rw-r--r--src/test/java/com/google/devtools/common/options/InvocationPolicySetValueTest.java27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/common/options/InvocationPolicySetValueTest.java b/src/test/java/com/google/devtools/common/options/InvocationPolicySetValueTest.java
index c8d08cc110..22324196b2 100644
--- a/src/test/java/com/google/devtools/common/options/InvocationPolicySetValueTest.java
+++ b/src/test/java/com/google/devtools/common/options/InvocationPolicySetValueTest.java
@@ -481,4 +481,31 @@ public class InvocationPolicySetValueTest extends InvocationPolicyEnforcerTestBa
// expected.
}
}
+
+ @Test
+ public void testConfigNotAllowed() throws Exception {
+ InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder();
+ invocationPolicyBuilder
+ .addFlagPoliciesBuilder()
+ .setFlagName("config")
+ .getSetValueBuilder()
+ .addFlagValue("foo");
+
+ InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder);
+ parser.parse();
+ try {
+ enforcer.enforce(parser, BUILD_COMMAND);
+ fail();
+ } catch (OptionsParsingException expected) {
+ assertThat(expected)
+ .hasMessageThat()
+ .isEqualTo(
+ "Invocation policy is applied after --config expansion, changing config values now "
+ + "would have no effect and is disallowed to prevent confusion. Please remove "
+ + "the following policy : flag_name: \"config\"\n"
+ + "set_value {\n"
+ + " flag_value: \"foo\"\n"
+ + "}\n");
+ }
+ }
}