aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/runtime/InvocationPolicyEnforcerTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/runtime/InvocationPolicyEnforcerTest.java')
-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);