aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/runtime
diff options
context:
space:
mode:
authorGravatar Alex Humesky <ahumesky@google.com>2016-05-09 18:38:55 +0000
committerGravatar Klaus Aehlig <aehlig@google.com>2016-05-10 07:56:28 +0000
commit0595007b17931aff8c2412db21bb93f73c94c5b7 (patch)
treec35f536ff5d2cedaa71adc8d6d116e8b4d622196 /src/test/java/com/google/devtools/build/lib/runtime
parent219150f8d2c0d595007fbfa9506702f86bb13a9c (diff)
Adds the option to invocation policy SetValue operation to append to repeated
flags, instead of always replacing all the values. -- MOS_MIGRATED_REVID=121858949
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/runtime')
-rw-r--r--src/test/java/com/google/devtools/build/lib/runtime/InvocationPolicyEnforcerTest.java33
1 files changed, 30 insertions, 3 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/runtime/InvocationPolicyEnforcerTest.java b/src/test/java/com/google/devtools/build/lib/runtime/InvocationPolicyEnforcerTest.java
index 25b026f7d7..a9f545921f 100644
--- a/src/test/java/com/google/devtools/build/lib/runtime/InvocationPolicyEnforcerTest.java
+++ b/src/test/java/com/google/devtools/build/lib/runtime/InvocationPolicyEnforcerTest.java
@@ -215,7 +215,6 @@ public class InvocationPolicyEnforcerTest {
TestOptions testOptions = getTestOptions();
assertThat(testOptions.testMultipleString)
.containsExactly("user value 1", "user value 2").inOrder();
- //assertEquals(, testOptions.test_multiple_string);
enforcer.enforce(parser, "build");
@@ -273,6 +272,36 @@ public class InvocationPolicyEnforcerTest {
}
@Test
+ public void testSetValueAppendsToMultipleValuedFlag() throws Exception {
+ InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder();
+ invocationPolicyBuilder.addFlagPoliciesBuilder()
+ .setFlagName("test_multiple_string")
+ .getSetValueBuilder()
+ .addFlagValue("policy value 1")
+ .addFlagValue("policy value 2")
+ .setAppend(true);
+
+ InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder);
+ parser.parse("--test_multiple_string=user value 1", "--test_multiple_string=user value 2");
+
+ // Options should not be modified by running the parser through OptionsPolicyEnforcer.create().
+ TestOptions testOptions = getTestOptions();
+ assertThat(testOptions.testMultipleString)
+ .containsExactly("user value 1", "user value 2").inOrder();
+
+ enforcer.enforce(parser, "build");
+
+ // Get the options again after policy enforcement.
+ testOptions = getTestOptions();
+ assertThat(testOptions.testMultipleString)
+ .containsExactly(
+ "user value 1",
+ "user value 2",
+ "policy value 1",
+ "policy value 2").inOrder();
+ }
+
+ @Test
public void testSetValueWithExpansionFlags() throws Exception {
InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder();
invocationPolicyBuilder.addFlagPoliciesBuilder()
@@ -334,7 +363,6 @@ public class InvocationPolicyEnforcerTest {
InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder);
parser.parse("--test_string=user value");
- // Repeatable flags always default to the empty list.
TestOptions testOptions = getTestOptions();
assertEquals("user value", testOptions.testString);
@@ -356,7 +384,6 @@ public class InvocationPolicyEnforcerTest {
InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder);
parser.parse("--test_string=user value");
- // Repeatable flags always default to the empty list.
TestOptions testOptions = getTestOptions();
assertEquals("user value", testOptions.testString);