aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/common/options/TestOptions.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/google/devtools/common/options/TestOptions.java')
-rw-r--r--src/test/java/com/google/devtools/common/options/TestOptions.java177
1 files changed, 177 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/common/options/TestOptions.java b/src/test/java/com/google/devtools/common/options/TestOptions.java
new file mode 100644
index 0000000000..ce532bbafb
--- /dev/null
+++ b/src/test/java/com/google/devtools/common/options/TestOptions.java
@@ -0,0 +1,177 @@
+// Copyright 2017 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package com.google.devtools.common.options;
+
+import com.google.devtools.common.options.InvocationPolicyEnforcerTestBase.ToListConverter;
+import java.util.List;
+
+/** Options for testing. */
+public class TestOptions extends OptionsBase {
+
+ /*
+ * Basic types
+ */
+
+ public static final String TEST_STRING_DEFAULT = "test string default";
+
+ @Option(name = "test_string", defaultValue = TEST_STRING_DEFAULT)
+ public String testString;
+
+ /*
+ * Repeated flags
+ */
+
+ @Option(
+ name = "test_multiple_string",
+ defaultValue = "", // default value is ignored when allowMultiple=true.
+ allowMultiple = true
+ )
+ public List<String> testMultipleString;
+
+ /*
+ * Flags with converters that return lists
+ */
+
+ @Option(
+ name = "test_list_converters",
+ defaultValue = "",
+ allowMultiple = true,
+ converter = ToListConverter.class
+ )
+ public List<String> testListConverters;
+
+ /*
+ * Expansion flags
+ */
+
+ public static final boolean EXPANDED_A_TEST_EXPANSION = false;
+ public static final boolean EXPANDED_B_TEST_EXPANSION = false;
+ public static final int EXPANDED_C_TEST_EXPANSION = 42;
+ public static final String EXPANDED_D_TEST_EXPANSION = "bar";
+
+ @Option(
+ name = "test_expansion",
+ defaultValue = "null",
+ expansion = {
+ "--noexpanded_a",
+ "--expanded_b=false",
+ "--expanded_c",
+ "42",
+ "--expanded_d",
+ "bar"
+ }
+ )
+ public Void testExpansion;
+
+ public static final boolean EXPANDED_A_TEST_RECURSIVE_EXPANSION = false;
+ public static final boolean EXPANDED_B_TEST_RECURSIVE_EXPANSION = false;
+ public static final int EXPANDED_C_TEST_RECURSIVE_EXPANSION = 56;
+ public static final String EXPANDED_D_TEST_RECURSIVE_EXPANSION = "baz";
+
+ @Option(
+ name = "test_recursive_expansion_top_level",
+ defaultValue = "null",
+ expansion = {
+ "--test_recursive_expansion_middle1",
+ "--test_recursive_expansion_middle2",
+ }
+ )
+ public Void testRecursiveExpansionTopLevel;
+
+ @Option(
+ name = "test_recursive_expansion_middle1",
+ defaultValue = "null",
+ expansion = {
+ "--expanded_a=false",
+ "--expanded_c=56",
+ }
+ )
+ public Void testRecursiveExpansionMiddle1;
+
+ @Option(
+ name = "test_recursive_expansion_middle2",
+ defaultValue = "null",
+ expansion = {
+ "--expanded_b=false",
+ "--expanded_d=baz",
+ }
+ )
+ public Void testRecursiveExpansionMiddle2;
+
+ public static final boolean EXPANDED_A_DEFAULT = true;
+
+ @Option(name = "expanded_a", defaultValue = "true")
+ public boolean expandedA;
+
+ public static final boolean EXPANDED_B_DEFAULT = true;
+
+ @Option(name = "expanded_b", defaultValue = "true")
+ public boolean expandedB;
+
+ public static final int EXPANDED_C_DEFAULT = 12;
+
+ @Option(name = "expanded_c", defaultValue = "12")
+ public int expandedC;
+
+ public static final String EXPANDED_D_DEFAULT = "foo";
+
+ @Option(name = "expanded_d", defaultValue = "foo")
+ public String expandedD;
+
+ /*
+ * Expansion into repeatable flags.
+ */
+
+ public static final String EXPANDED_MULTIPLE_1 = "expandedFirstValue";
+ public static final String EXPANDED_MULTIPLE_2 = "expandedSecondValue";
+
+ @Option(name = "test_expansion_to_repeatable",
+ defaultValue = "null",
+ expansion = {
+ "--test_multiple_string=expandedFirstValue",
+ "--test_multiple_string=expandedSecondValue"
+ }
+ )
+ public Void testExpansionToRepeatable;
+
+
+ /*
+ * Implicit requirement flags
+ */
+
+ public static final String TEST_IMPLICIT_REQUIREMENT_DEFAULT = "direct implicit";
+ public static final String IMPLICIT_REQUIREMENT_A_REQUIRED = "implicit requirement, required";
+
+ @Option(
+ name = "test_implicit_requirement",
+ defaultValue = TEST_IMPLICIT_REQUIREMENT_DEFAULT,
+ implicitRequirements = {"--implicit_requirement_a=" + IMPLICIT_REQUIREMENT_A_REQUIRED}
+ )
+ public String testImplicitRequirement;
+
+ public static final String IMPLICIT_REQUIREMENT_A_DEFAULT = "implicit requirement, unrequired";
+
+ @Option(name = "implicit_requirement_a", defaultValue = IMPLICIT_REQUIREMENT_A_DEFAULT)
+ public String implicitRequirementA;
+
+ public static final String TEST_RECURSIVE_IMPLICIT_REQUIREMENT_DEFAULT = "recursive implicit";
+ public static final String TEST_IMPLICIT_REQUIREMENT_REQUIRED = "intermediate, required";
+
+ @Option(
+ name = "test_recursive_implicit_requirement",
+ defaultValue = TEST_RECURSIVE_IMPLICIT_REQUIREMENT_DEFAULT,
+ implicitRequirements = {"--test_implicit_requirement=" + TEST_IMPLICIT_REQUIREMENT_REQUIRED}
+ )
+ public String testRecursiveImplicitRequirement;
+}