aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/runtime/TestOptions.java
blob: f5c2a85b3b9a7928ba982e283cbf2f482c4c9ce2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
// 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.build.lib.runtime;

import com.google.devtools.build.lib.runtime.InvocationPolicyEnforcerTestBase.ToListConverter;
import com.google.devtools.common.options.Option;
import com.google.devtools.common.options.OptionsBase;
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;
}