aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test
diff options
context:
space:
mode:
authorGravatar ccalvarin <ccalvarin@google.com>2017-06-07 09:17:35 -0400
committerGravatar John Cater <jcater@google.com>2017-06-07 09:49:32 -0400
commit987715b2e18a5c0ebc5e3174bbba2b66e5d406a9 (patch)
tree0c6aa27187f5aace8c61d07825ed2e53a1228975 /src/test
parentb8f9ba6f1b85b466ff0f11352c390cfc0709f6f7 (diff)
Require that flags with static expansions be of Void type.
The type was ignored, and it was expected that all expansion flags had no value of their own, but was not checked. PiperOrigin-RevId: 158261788
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/com/google/devtools/common/options/OptionsDataTest.java43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/common/options/OptionsDataTest.java b/src/test/java/com/google/devtools/common/options/OptionsDataTest.java
index ca777ed23e..d1f913197d 100644
--- a/src/test/java/com/google/devtools/common/options/OptionsDataTest.java
+++ b/src/test/java/com/google/devtools/common/options/OptionsDataTest.java
@@ -417,4 +417,47 @@ public class OptionsDataTest {
assertThat(getOptionNames(data.getFieldsForClass(ReverseOrderedOptions.class)))
.containsExactly("A", "B", "C").inOrder();
}
+
+ /** Dummy options class. */
+ public static class InvalidExpansionOptions extends OptionsBase {
+ @Option(name = "foo", defaultValue = "1")
+ public int foo;
+
+ @Option(
+ name = "bar",
+ defaultValue = "1",
+ expansion = {"--foo=42"}
+ )
+ public int bar;
+ }
+
+ @Test
+ public void staticExpansionOptionsShouldNotHaveValues() {
+ try {
+ construct(InvalidExpansionOptions.class);
+ fail();
+ } catch (ConstructionException e) {
+ // Expected exception
+ assertThat(e).hasMessageThat().contains(
+ "Option bar is an expansion flag with a static expansion, but does not have Void type.");
+ }
+ }
+
+ /** Dummy options class. */
+ public static class ValidExpansionOptions extends OptionsBase {
+ @Option(name = "foo", defaultValue = "1")
+ public int foo;
+
+ @Option(
+ name = "bar",
+ defaultValue = "null",
+ expansion = {"--foo=42"}
+ )
+ public Void bar;
+ }
+
+ @Test
+ public void staticExpansionOptionsCanBeVoidType() {
+ construct(ValidExpansionOptions.class);
+ }
}