aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test
diff options
context:
space:
mode:
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);
+ }
}