diff options
author | ccalvarin <ccalvarin@google.com> | 2017-06-07 09:17:35 -0400 |
---|---|---|
committer | John Cater <jcater@google.com> | 2017-06-07 09:49:32 -0400 |
commit | 987715b2e18a5c0ebc5e3174bbba2b66e5d406a9 (patch) | |
tree | 0c6aa27187f5aace8c61d07825ed2e53a1228975 /src/test/java/com/google/devtools/common/options/OptionsDataTest.java | |
parent | b8f9ba6f1b85b466ff0f11352c390cfc0709f6f7 (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/java/com/google/devtools/common/options/OptionsDataTest.java')
-rw-r--r-- | src/test/java/com/google/devtools/common/options/OptionsDataTest.java | 43 |
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); + } } |