aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test
diff options
context:
space:
mode:
authorGravatar ccalvarin <ccalvarin@google.com>2017-08-03 02:12:48 +0200
committerGravatar Dmitry Lomov <dslomov@google.com>2017-08-03 12:10:02 +0200
commitc331f24a3a8af5e19f2d603d0b77ca90923b3dc2 (patch)
tree43b0d089c7b19e1245defdc93c4e8d0629fa37f0 /src/test
parentdfa86f48a0ee5f0f56b6602b5274691193fa1862 (diff)
Accept expansion flags expanding to expansion flags in invocation policy.
Fix bug where a null value in the expansion text lead to a NullPointerException. RELNOTES: None. PiperOrigin-RevId: 164061496
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/com/google/devtools/common/options/InvocationPolicySetValueTest.java30
1 files changed, 30 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 430366579a..1bb13cfea4 100644
--- a/src/test/java/com/google/devtools/common/options/InvocationPolicySetValueTest.java
+++ b/src/test/java/com/google/devtools/common/options/InvocationPolicySetValueTest.java
@@ -232,6 +232,36 @@ public class InvocationPolicySetValueTest extends InvocationPolicyEnforcerTestBa
}
@Test
+ public void testSetValueWithExpansionFlagOnExpansionFlag() throws Exception {
+ InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder();
+ invocationPolicyBuilder
+ .addFlagPoliciesBuilder()
+ .setFlagName("test_recursive_expansion_top_level")
+ .getSetValueBuilder();
+
+
+ InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder);
+ // Unrelated flag, but --test_expansion is not set
+ parser.parse("--test_string=throwaway value");
+
+ // The flags that --test_expansion expands into should still be their default values
+ TestOptions testOptions = getTestOptions();
+ assertThat(testOptions.expandedA).isEqualTo(TestOptions.EXPANDED_A_DEFAULT);
+ assertThat(testOptions.expandedB).isEqualTo(TestOptions.EXPANDED_B_DEFAULT);
+ assertThat(testOptions.expandedC).isEqualTo(TestOptions.EXPANDED_C_DEFAULT);
+ assertThat(testOptions.expandedD).isEqualTo(TestOptions.EXPANDED_D_DEFAULT);
+
+ enforcer.enforce(parser, BUILD_COMMAND);
+
+ // After policy enforcement, the flags should be the values from the expansion flag
+ testOptions = getTestOptions();
+ assertThat(testOptions.expandedA).isEqualTo(TestOptions.EXPANDED_A_TEST_RECURSIVE_EXPANSION);
+ assertThat(testOptions.expandedB).isEqualTo(TestOptions.EXPANDED_B_TEST_RECURSIVE_EXPANSION);
+ assertThat(testOptions.expandedC).isEqualTo(TestOptions.EXPANDED_C_TEST_RECURSIVE_EXPANSION);
+ assertThat(testOptions.expandedD).isEqualTo(TestOptions.EXPANDED_D_TEST_RECURSIVE_EXPANSION);
+ }
+
+ @Test
public void testSetValueWithExpansionFunctionFlags() throws Exception {
InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder();
invocationPolicyBuilder