Fix classes that create OptionsParser instances to directly use the Builder. PiperOrigin-RevId: 253601285
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcher.java b/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcher.java index 601b8b4..290ae1c 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcher.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcher.java
@@ -651,7 +651,11 @@ } Command annotation = command.getClass().getAnnotation(Command.class); OptionsParser parser = - OptionsParser.newOptionsParser(optionsData, "--//", annotation.allowResidue()); + OptionsParser.builder() + .optionsData(optionsData) + .skippedPrefix("--//") + .allowResidue(annotation.allowResidue()) + .build(); return parser; }
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandUtils.java b/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandUtils.java index 4982415..41469c44 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandUtils.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandUtils.java
@@ -123,7 +123,7 @@ Collection<Class<? extends OptionsBase>> options, OptionsParser.HelpVerbosity helpVerbosity, String productName) { - OptionsParser parser = OptionsParser.newOptionsParser(options); + OptionsParser parser = OptionsParser.builder().optionsClasses(options).build(); String template; if (help.startsWith("resource:")) {
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java b/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java index f05338b..718a3dc 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
@@ -1147,7 +1147,8 @@ BlazeCommandUtils.getStartupOptions(modules); // First parse the command line so that we get the option_sources argument - OptionsParser parser = OptionsParser.newOptionsParser(false, optionClasses); + OptionsParser parser = + OptionsParser.builder().optionsClasses(optionClasses).allowResidue(false).build(); parser.parse(PriorityCategory.COMMAND_LINE, null, args); Map<String, String> optionSources = parser.getOptions(BlazeServerStartupOptions.class).optionSources; @@ -1160,7 +1161,7 @@ : optionSources.get(option.getOptionName()); // Then parse the command line again, this time with the correct option sources - parser = OptionsParser.newOptionsParser(false, optionClasses); + parser = OptionsParser.builder().optionsClasses(optionClasses).allowResidue(false).build(); parser.parseWithSourceFunction(PriorityCategory.COMMAND_LINE, sourceFunction, args); return parser; }
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/CommandLineEvent.java b/src/main/java/com/google/devtools/build/lib/runtime/CommandLineEvent.java index 5eff056..97a6e92 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/CommandLineEvent.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/CommandLineEvent.java
@@ -317,7 +317,8 @@ private CommandLineSection getCanonicalStartupOptions() { List<Option> unfilteredOptions = getActiveStartupOptions().getOptionList().getOptionList(); // Create the fake ones to prevent reapplication of the original rc file contents. - OptionsParser fakeOptions = OptionsParser.newOptionsParser(BlazeServerStartupOptions.class); + OptionsParser fakeOptions = + OptionsParser.builder().optionsClasses(BlazeServerStartupOptions.class).build(); try { fakeOptions.parse("--ignore_all_rc_files"); } catch (OptionsParsingException e) {
diff --git a/src/test/java/com/google/devtools/build/lib/runtime/AllIncompatibleChangesExpansionTest.java b/src/test/java/com/google/devtools/build/lib/runtime/AllIncompatibleChangesExpansionTest.java index 7e162cc..e70dab3 100644 --- a/src/test/java/com/google/devtools/build/lib/runtime/AllIncompatibleChangesExpansionTest.java +++ b/src/test/java/com/google/devtools/build/lib/runtime/AllIncompatibleChangesExpansionTest.java
@@ -153,7 +153,7 @@ @Test public void noChangesSelected() throws OptionsParsingException { - OptionsParser parser = OptionsParser.newOptionsParser(ExampleOptions.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(ExampleOptions.class).build(); parser.parse(""); ExampleOptions opts = parser.getOptions(ExampleOptions.class); assertThat(opts.x).isFalse(); @@ -165,7 +165,7 @@ @Test public void allChangesSelected() throws OptionsParsingException { - OptionsParser parser = OptionsParser.newOptionsParser(ExampleOptions.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(ExampleOptions.class).build(); parser.parse("--all"); ExampleOptions opts = parser.getOptions(ExampleOptions.class); assertThat(opts.x).isFalse(); @@ -179,7 +179,7 @@ public void rightmostOverrides() throws OptionsParsingException { // Check that all-expansion behaves just like any other expansion flag: // the rightmost setting of any individual option wins. - OptionsParser parser = OptionsParser.newOptionsParser(ExampleOptions.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(ExampleOptions.class).build(); parser.parse("--noincompatible_A", "--all", "--noincompatible_B"); ExampleOptions opts = parser.getOptions(ExampleOptions.class); assertThat(opts.incompatibleA).isTrue(); @@ -191,7 +191,9 @@ // Check that all-expansion behaves just like any other expansion flag: // the rightmost setting of any individual option wins. OptionsParser parser = - OptionsParser.newOptionsParser(ExampleOptions.class, ExampleExpansionOptions.class); + OptionsParser.builder() + .optionsClasses(ExampleOptions.class, ExampleExpansionOptions.class) + .build(); parser.parse("--all"); ExampleOptions opts = parser.getOptions(ExampleOptions.class); assertThat(opts.x).isTrue(); @@ -212,8 +214,7 @@ InvocationPolicy policy = invocationPolicyBuilder.build(); InvocationPolicyEnforcer enforcer = new InvocationPolicyEnforcer(policy); - OptionsParser parser = - OptionsParser.newOptionsParser(ExampleOptions.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(ExampleOptions.class).build(); parser.parse("--all"); enforcer.enforce(parser); @@ -240,7 +241,9 @@ @Test public void incompatibleChangeTagDoesNotTriggerAllIncompatibleChangesCheck() { try { - OptionsParser.newOptionsParser(ExampleOptions.class, IncompatibleChangeTagOption.class); + OptionsParser.builder() + .optionsClasses(ExampleOptions.class, IncompatibleChangeTagOption.class) + .build(); } catch (OptionsParser.ConstructionException e) { fail( "some_option_with_a_tag should not trigger the expansion, so there should be no checks " @@ -265,7 +268,10 @@ assertThrows( "Should have failed with message \"" + message + "\"", OptionsParser.ConstructionException.class, - () -> OptionsParser.newOptionsParser(ExampleOptions.class, optionsBaseClass)); + () -> + OptionsParser.builder() + .optionsClasses(ExampleOptions.class, optionsBaseClass) + .build()); assertThat(e).hasMessageThat().contains(message); }
diff --git a/src/test/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcherRcoptionsTest.java b/src/test/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcherRcoptionsTest.java index 2cddf92..e2e0e71 100644 --- a/src/test/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcherRcoptionsTest.java +++ b/src/test/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcherRcoptionsTest.java
@@ -139,7 +139,7 @@ .setProductName(productName) .setServerDirectories(serverDirectories) .setStartupOptionsProvider( - OptionsParser.newOptionsParser(BlazeServerStartupOptions.class)) + OptionsParser.builder().optionsClasses(BlazeServerStartupOptions.class).build()) .addBlazeModule( new BlazeModule() { @Override
diff --git a/src/test/java/com/google/devtools/build/lib/runtime/BlazeOptionHandlerTest.java b/src/test/java/com/google/devtools/build/lib/runtime/BlazeOptionHandlerTest.java index 7451bd1..2172600 100644 --- a/src/test/java/com/google/devtools/build/lib/runtime/BlazeOptionHandlerTest.java +++ b/src/test/java/com/google/devtools/build/lib/runtime/BlazeOptionHandlerTest.java
@@ -59,8 +59,10 @@ @Before public void initStuff() throws Exception { parser = - OptionsParser.newOptionsParser( - true, TestOptions.class, CommonCommandOptions.class, ClientOptions.class); + OptionsParser.builder() + .optionsClasses(TestOptions.class, CommonCommandOptions.class, ClientOptions.class) + .allowResidue(true) + .build(); String productName = TestConstants.PRODUCT_NAME; ServerDirectories serverDirectories = new ServerDirectories( @@ -71,7 +73,7 @@ .setServerDirectories(serverDirectories) .setProductName(productName) .setStartupOptionsProvider( - OptionsParser.newOptionsParser(BlazeServerStartupOptions.class)) + OptionsParser.builder().optionsClasses(BlazeServerStartupOptions.class).build()) .addBlazeModule(new BazelRulesModule()) .build(); this.runtime.overrideCommands(ImmutableList.of(new C0Command()));
diff --git a/src/test/java/com/google/devtools/build/lib/runtime/BlazeRuntimeTest.java b/src/test/java/com/google/devtools/build/lib/runtime/BlazeRuntimeTest.java index db9671a..eb30e49 100644 --- a/src/test/java/com/google/devtools/build/lib/runtime/BlazeRuntimeTest.java +++ b/src/test/java/com/google/devtools/build/lib/runtime/BlazeRuntimeTest.java
@@ -120,7 +120,8 @@ serverDirectories, fs.getPath("/workspace"), fs.getPath("/system_javabase"), "blaze"); BlazeWorkspace workspace = runtime.initWorkspace(directories, BinTools.empty(directories)); EventBus eventBus = Mockito.mock(EventBus.class); - OptionsParser options = OptionsParser.newOptionsParser(COMMAND_ENV_REQUIRED_OPTIONS); + OptionsParser options = + OptionsParser.builder().optionsClasses(COMMAND_ENV_REQUIRED_OPTIONS).build(); CommandEnvironment env = new CommandEnvironment( runtime,
diff --git a/src/test/java/com/google/devtools/build/lib/runtime/BlazeServerStartupOptionsTest.java b/src/test/java/com/google/devtools/build/lib/runtime/BlazeServerStartupOptionsTest.java index 239de8f..6a89099 100644 --- a/src/test/java/com/google/devtools/build/lib/runtime/BlazeServerStartupOptionsTest.java +++ b/src/test/java/com/google/devtools/build/lib/runtime/BlazeServerStartupOptionsTest.java
@@ -28,7 +28,8 @@ // value is provided. @Test public void testOutputBaseIsNullByDefault() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(BlazeServerStartupOptions.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(BlazeServerStartupOptions.class).build(); parser.parse(); BlazeServerStartupOptions result = parser.getOptions(BlazeServerStartupOptions.class); assertThat(result.outputBase).isNull();
diff --git a/src/test/java/com/google/devtools/build/lib/runtime/CommandInterruptionTest.java b/src/test/java/com/google/devtools/build/lib/runtime/CommandInterruptionTest.java index 76c9ede..7a13fec 100644 --- a/src/test/java/com/google/devtools/build/lib/runtime/CommandInterruptionTest.java +++ b/src/test/java/com/google/devtools/build/lib/runtime/CommandInterruptionTest.java
@@ -359,7 +359,7 @@ .setProductName(productName) .setServerDirectories(serverDirectories) .setStartupOptionsProvider( - OptionsParser.newOptionsParser(BlazeServerStartupOptions.class)) + OptionsParser.builder().optionsClasses(BlazeServerStartupOptions.class).build()) .addBlazeModule( new BlazeModule() { @Override
diff --git a/src/test/java/com/google/devtools/build/lib/runtime/CommandLineEventTest.java b/src/test/java/com/google/devtools/build/lib/runtime/CommandLineEventTest.java index 228669b..b103321 100644 --- a/src/test/java/com/google/devtools/build/lib/runtime/CommandLineEventTest.java +++ b/src/test/java/com/google/devtools/build/lib/runtime/CommandLineEventTest.java
@@ -54,8 +54,9 @@ @Test public void testMostlyEmpty_OriginalCommandLine() { OptionsParser fakeStartupOptions = - OptionsParser.newOptionsParser(BlazeServerStartupOptions.class); - OptionsParser fakeCommandOptions = OptionsParser.newOptionsParser(TestOptions.class); + OptionsParser.builder().optionsClasses(BlazeServerStartupOptions.class).build(); + OptionsParser fakeCommandOptions = + OptionsParser.builder().optionsClasses(TestOptions.class).build(); CommandLine line = new OriginalCommandLineEvent( @@ -80,8 +81,9 @@ @Test public void testMostlyEmpty_CanonicalCommandLine() { OptionsParser fakeStartupOptions = - OptionsParser.newOptionsParser(BlazeServerStartupOptions.class); - OptionsParser fakeCommandOptions = OptionsParser.newOptionsParser(TestOptions.class); + OptionsParser.builder().optionsClasses(BlazeServerStartupOptions.class).build(); + OptionsParser fakeCommandOptions = + OptionsParser.builder().optionsClasses(TestOptions.class).build(); CommandLine line = new CanonicalCommandLineEvent( @@ -105,10 +107,13 @@ @Test public void testActiveBazelrcs_OriginalCommandLine() throws OptionsParsingException { OptionsParser fakeStartupOptions = - OptionsParser.newOptionsParser(BlazeServerStartupOptions.class, Options.class); + OptionsParser.builder() + .optionsClasses(BlazeServerStartupOptions.class, Options.class) + .build(); fakeStartupOptions.parse( "--bazelrc=/some/path", "--master_bazelrc", "--bazelrc", "/some/other/path"); - OptionsParser fakeCommandOptions = OptionsParser.newOptionsParser(TestOptions.class); + OptionsParser fakeCommandOptions = + OptionsParser.builder().optionsClasses(TestOptions.class).build(); CommandLine line = new OriginalCommandLineEvent( @@ -141,8 +146,11 @@ @Test public void testPassedInBazelrcs_OriginalCommandLine() throws OptionsParsingException { OptionsParser fakeStartupOptions = - OptionsParser.newOptionsParser(BlazeServerStartupOptions.class, Options.class); - OptionsParser fakeCommandOptions = OptionsParser.newOptionsParser(TestOptions.class); + OptionsParser.builder() + .optionsClasses(BlazeServerStartupOptions.class, Options.class) + .build(); + OptionsParser fakeCommandOptions = + OptionsParser.builder().optionsClasses(TestOptions.class).build(); CommandLine line = new OriginalCommandLineEvent( @@ -182,10 +190,13 @@ @Test public void testBazelrcs_CanonicalCommandLine() throws OptionsParsingException { OptionsParser fakeStartupOptions = - OptionsParser.newOptionsParser(BlazeServerStartupOptions.class, Options.class); + OptionsParser.builder() + .optionsClasses(BlazeServerStartupOptions.class, Options.class) + .build(); fakeStartupOptions.parse( "--bazelrc=/some/path", "--master_bazelrc", "--bazelrc", "/some/other/path"); - OptionsParser fakeCommandOptions = OptionsParser.newOptionsParser(TestOptions.class); + OptionsParser fakeCommandOptions = + OptionsParser.builder().optionsClasses(TestOptions.class).build(); CommandLine line = new CanonicalCommandLineEvent( @@ -211,8 +222,9 @@ @Test public void testOptionsAtVariousPriorities_OriginalCommandLine() throws OptionsParsingException { OptionsParser fakeStartupOptions = - OptionsParser.newOptionsParser(BlazeServerStartupOptions.class); - OptionsParser fakeCommandOptions = OptionsParser.newOptionsParser(TestOptions.class); + OptionsParser.builder().optionsClasses(BlazeServerStartupOptions.class).build(); + OptionsParser fakeCommandOptions = + OptionsParser.builder().optionsClasses(TestOptions.class).build(); fakeCommandOptions.parse( PriorityCategory.COMMAND_LINE, "command line", @@ -254,8 +266,9 @@ @Test public void testOptionsAtVariousPriorities_CanonicalCommandLine() throws OptionsParsingException { OptionsParser fakeStartupOptions = - OptionsParser.newOptionsParser(BlazeServerStartupOptions.class); - OptionsParser fakeCommandOptions = OptionsParser.newOptionsParser(TestOptions.class); + OptionsParser.builder().optionsClasses(BlazeServerStartupOptions.class).build(); + OptionsParser fakeCommandOptions = + OptionsParser.builder().optionsClasses(TestOptions.class).build(); fakeCommandOptions.parse( PriorityCategory.COMMAND_LINE, "command line", @@ -296,8 +309,9 @@ @Test public void testExpansionOption_OriginalCommandLine() throws OptionsParsingException { OptionsParser fakeStartupOptions = - OptionsParser.newOptionsParser(BlazeServerStartupOptions.class); - OptionsParser fakeCommandOptions = OptionsParser.newOptionsParser(TestOptions.class); + OptionsParser.builder().optionsClasses(BlazeServerStartupOptions.class).build(); + OptionsParser fakeCommandOptions = + OptionsParser.builder().optionsClasses(TestOptions.class).build(); fakeCommandOptions.parse( PriorityCategory.COMMAND_LINE, "command line", ImmutableList.of("--test_expansion")); @@ -328,8 +342,9 @@ @Test public void testExpansionOption_CanonicalCommandLine() throws OptionsParsingException { OptionsParser fakeStartupOptions = - OptionsParser.newOptionsParser(BlazeServerStartupOptions.class); - OptionsParser fakeCommandOptions = OptionsParser.newOptionsParser(TestOptions.class); + OptionsParser.builder().optionsClasses(BlazeServerStartupOptions.class).build(); + OptionsParser fakeCommandOptions = + OptionsParser.builder().optionsClasses(TestOptions.class).build(); fakeCommandOptions.parse( PriorityCategory.COMMAND_LINE, "command line", ImmutableList.of("--test_expansion")); @@ -363,8 +378,9 @@ public void testOptionWithImplicitRequirement_OriginalCommandLine() throws OptionsParsingException { OptionsParser fakeStartupOptions = - OptionsParser.newOptionsParser(BlazeServerStartupOptions.class); - OptionsParser fakeCommandOptions = OptionsParser.newOptionsParser(TestOptions.class); + OptionsParser.builder().optionsClasses(BlazeServerStartupOptions.class).build(); + OptionsParser fakeCommandOptions = + OptionsParser.builder().optionsClasses(TestOptions.class).build(); fakeCommandOptions.parse( PriorityCategory.COMMAND_LINE, "command line", @@ -397,8 +413,9 @@ public void testOptionWithImplicitRequirement_CanonicalCommandLine() throws OptionsParsingException { OptionsParser fakeStartupOptions = - OptionsParser.newOptionsParser(BlazeServerStartupOptions.class); - OptionsParser fakeCommandOptions = OptionsParser.newOptionsParser(TestOptions.class); + OptionsParser.builder().optionsClasses(BlazeServerStartupOptions.class).build(); + OptionsParser fakeCommandOptions = + OptionsParser.builder().optionsClasses(TestOptions.class).build(); fakeCommandOptions.parse( PriorityCategory.COMMAND_LINE, "command line", @@ -426,7 +443,8 @@ @Test public void testDefaultToolCommandLine() throws OptionsParsingException { - OptionsParser parser = OptionsParser.newOptionsParser(CommonCommandOptions.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(CommonCommandOptions.class).build(); ToolCommandLineEvent event = parser.getOptions(CommonCommandOptions.class).toolCommandLine; // Test that the actual default value is an empty command line. assertThat(event.asStreamProto(null).getStructuredCommandLine()) @@ -435,7 +453,8 @@ @Test public void testLabelessParsingOfCompiledToolCommandLine() throws OptionsParsingException { - OptionsParser parser = OptionsParser.newOptionsParser(CommonCommandOptions.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(CommonCommandOptions.class).build(); CommandLine original = CommandLine.newBuilder().addSections(CommandLineSection.getDefaultInstance()).build(); parser.parse( @@ -451,7 +470,8 @@ @Test public void testParsingOfCompiledToolCommandLine() throws OptionsParsingException { - OptionsParser parser = OptionsParser.newOptionsParser(CommonCommandOptions.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(CommonCommandOptions.class).build(); CommandLine original = CommandLine.newBuilder() .setCommandLineLabel("something meaningful") @@ -491,7 +511,8 @@ @Test public void testSimpleStringToolCommandLine() throws OptionsParsingException { - OptionsParser parser = OptionsParser.newOptionsParser(CommonCommandOptions.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(CommonCommandOptions.class).build(); parser.parse("--experimental_tool_command_line=The quick brown fox jumps over the lazy dog"); ToolCommandLineEvent event = parser.getOptions(CommonCommandOptions.class).toolCommandLine;
diff --git a/src/test/java/com/google/devtools/build/lib/runtime/TestResultAnalyzerTest.java b/src/test/java/com/google/devtools/build/lib/runtime/TestResultAnalyzerTest.java index 287e9e1..37cc797 100644 --- a/src/test/java/com/google/devtools/build/lib/runtime/TestResultAnalyzerTest.java +++ b/src/test/java/com/google/devtools/build/lib/runtime/TestResultAnalyzerTest.java
@@ -45,8 +45,10 @@ @Before public final void createMocks() throws Exception { - OptionsParser testSpecificOptions = OptionsParser.newOptionsParser( - TestSummaryOptions.class, ExecutionOptions.class); + OptionsParser testSpecificOptions = + OptionsParser.builder() + .optionsClasses(TestSummaryOptions.class, ExecutionOptions.class) + .build(); EventBus mockBus = mock(EventBus.class); underTest = new TestResultAnalyzer( testSpecificOptions.getOptions(TestSummaryOptions.class),
diff --git a/src/test/java/com/google/devtools/common/options/BoolOrEnumConverterTest.java b/src/test/java/com/google/devtools/common/options/BoolOrEnumConverterTest.java index a99a75e..ff92faa 100644 --- a/src/test/java/com/google/devtools/common/options/BoolOrEnumConverterTest.java +++ b/src/test/java/com/google/devtools/common/options/BoolOrEnumConverterTest.java
@@ -16,7 +16,6 @@ import static com.google.common.truth.Truth.assertThat; import static com.google.devtools.build.lib.testutil.MoreAsserts.assertThrows; -import static com.google.devtools.common.options.OptionsParser.newOptionsParser; import org.junit.Test; import org.junit.runner.RunWith; @@ -86,7 +85,8 @@ @Test public void prefixedWithNo() throws OptionsParsingException { - OptionsParser parser = newOptionsParser(CompilationModeTestOptions.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(CompilationModeTestOptions.class).build(); parser.parse("--nocompile_mode"); CompilationModeTestOptions options = parser.getOptions(CompilationModeTestOptions.class); @@ -96,7 +96,8 @@ @Test public void missingValueAsBoolConversion() throws OptionsParsingException { - OptionsParser parser = newOptionsParser(CompilationModeTestOptions.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(CompilationModeTestOptions.class).build(); parser.parse("--compile_mode"); CompilationModeTestOptions options = parser.getOptions(CompilationModeTestOptions.class);
diff --git a/src/test/java/com/google/devtools/common/options/EnumConverterTest.java b/src/test/java/com/google/devtools/common/options/EnumConverterTest.java index beb764b..12391c4 100644 --- a/src/test/java/com/google/devtools/common/options/EnumConverterTest.java +++ b/src/test/java/com/google/devtools/common/options/EnumConverterTest.java
@@ -16,7 +16,6 @@ import static com.google.common.truth.Truth.assertThat; import static com.google.devtools.build.lib.testutil.MoreAsserts.assertThrows; -import static com.google.devtools.common.options.OptionsParser.newOptionsParser; import java.util.List; import org.junit.Test; @@ -103,7 +102,8 @@ @Test public void enumList() throws OptionsParsingException { - OptionsParser parser = newOptionsParser(EnumListTestOptions.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(EnumListTestOptions.class).build(); parser.parse("--goo=ALPHA", "--goo=BRAVO"); EnumListTestOptions options = parser.getOptions(EnumListTestOptions.class); assertThat(options.goo).isNotNull();
diff --git a/src/test/java/com/google/devtools/common/options/InvocationPolicyEnforcerTestBase.java b/src/test/java/com/google/devtools/common/options/InvocationPolicyEnforcerTestBase.java index 86f0112..2cecc91 100644 --- a/src/test/java/com/google/devtools/common/options/InvocationPolicyEnforcerTestBase.java +++ b/src/test/java/com/google/devtools/common/options/InvocationPolicyEnforcerTestBase.java
@@ -56,8 +56,8 @@ policyProto.writeTo(out); String policyBase64 = BaseEncoding.base64().encode(out.toByteArray()); - OptionsParser startupOptionsParser = OptionsParser.newOptionsParser( - BlazeServerStartupOptions.class); + OptionsParser startupOptionsParser = + OptionsParser.builder().optionsClasses(BlazeServerStartupOptions.class).build(); String policyOption = "--invocation_policy=" + policyBase64; startupOptionsParser.parse(policyOption); @@ -71,7 +71,7 @@ @Before public final void setParser() throws Exception { - parser = OptionsParser.newOptionsParser(TestOptions.class); + parser = OptionsParser.builder().optionsClasses(TestOptions.class).build(); } @BeforeClass
diff --git a/src/test/java/com/google/devtools/common/options/OptionsParserTest.java b/src/test/java/com/google/devtools/common/options/OptionsParserTest.java index 142aeaf..0b6e311 100644 --- a/src/test/java/com/google/devtools/common/options/OptionsParserTest.java +++ b/src/test/java/com/google/devtools/common/options/OptionsParserTest.java
@@ -16,7 +16,6 @@ import static com.google.common.truth.Truth.assertThat; import static com.google.devtools.build.lib.testutil.MoreAsserts.assertThrows; -import static com.google.devtools.common.options.OptionsParser.newOptionsParser; import static java.util.Arrays.asList; import static org.junit.Assert.fail; @@ -68,7 +67,8 @@ public void errorsDuringConstructionAreWrapped() { OptionsParser.ConstructionException e = assertThrows( - OptionsParser.ConstructionException.class, () -> newOptionsParser(BadOptions.class)); + OptionsParser.ConstructionException.class, + () -> OptionsParser.builder().optionsClasses(BadOptions.class).build()); assertThat(e).hasCauseThat().isInstanceOf(DuplicateOptionDeclarationException.class); } @@ -209,7 +209,8 @@ @Test public void parseWithMultipleOptionsInterfaces() throws OptionsParsingException { - OptionsParser parser = newOptionsParser(ExampleFoo.class, ExampleBaz.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(ExampleFoo.class, ExampleBaz.class).build(); parser.parse("--baz=oops", "--bar", "17"); ExampleFoo foo = parser.getOptions(ExampleFoo.class); assertThat(foo.foo).isEqualTo("defaultFoo"); @@ -220,7 +221,7 @@ @Test public void parseWithOptionsInheritance() throws OptionsParsingException { - OptionsParser parser = newOptionsParser(ExampleBazSubclass.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(ExampleBazSubclass.class).build(); parser.parse("--baz_subclass=cat", "--baz=dog"); ExampleBazSubclass subclassOptions = parser.getOptions(ExampleBazSubclass.class); assertThat(subclassOptions.bazSubclass).isEqualTo("cat"); @@ -233,7 +234,8 @@ @Test public void parserWithUnknownOption() { - OptionsParser parser = newOptionsParser(ExampleFoo.class, ExampleBaz.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(ExampleFoo.class, ExampleBaz.class).build(); OptionsParsingException e = assertThrows(OptionsParsingException.class, () -> parser.parse("--unknown", "option")); assertThat(e.getInvalidArgument()).isEqualTo("--unknown"); @@ -243,13 +245,15 @@ @Test public void parserWithSingleDashOption_notAllowed() throws OptionsParsingException { - OptionsParser parser = newOptionsParser(ExampleFoo.class, ExampleBaz.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(ExampleFoo.class, ExampleBaz.class).build(); assertThrows(OptionsParsingException.class, () -> parser.parse("-baz=oops", "-bar", "17")); } @Test public void parsingFailsWithUnknownOptions() { - OptionsParser parser = newOptionsParser(ExampleFoo.class, ExampleBaz.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(ExampleFoo.class, ExampleBaz.class).build(); List<String> unknownOpts = asList("--unknown", "option", "--more_unknowns"); OptionsParsingException e = assertThrows(OptionsParsingException.class, () -> parser.parse(unknownOpts)); @@ -261,7 +265,8 @@ @Test public void parsingFailsWithInternalBooleanOptionAsIfUnknown() { - OptionsParser parser = newOptionsParser(ExampleInternalOptions.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(ExampleInternalOptions.class).build(); List<String> internalOpts = asList("--internal_boolean"); OptionsParsingException e = assertThrows(OptionsParsingException.class, () -> parser.parse(internalOpts)); @@ -272,7 +277,8 @@ @Test public void parsingFailsWithNegatedInternalBooleanOptionAsIfUnknown() { - OptionsParser parser = newOptionsParser(ExampleInternalOptions.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(ExampleInternalOptions.class).build(); List<String> internalOpts = asList("--nointernal_boolean"); OptionsParsingException e = assertThrows(OptionsParsingException.class, () -> parser.parse(internalOpts)); @@ -283,7 +289,8 @@ @Test public void parsingFailsForInternalOptionWithValueInSameArgAsIfUnknown() { - OptionsParser parser = newOptionsParser(ExampleInternalOptions.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(ExampleInternalOptions.class).build(); List<String> internalOpts = asList("--internal_string=any_value"); OptionsParsingException e = assertThrows( @@ -297,7 +304,8 @@ @Test public void parsingFailsForInternalOptionWithValueInSeparateArgAsIfUnknown() { - OptionsParser parser = newOptionsParser(ExampleInternalOptions.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(ExampleInternalOptions.class).build(); List<String> internalOpts = asList("--internal_string", "any_value"); OptionsParsingException e = assertThrows( @@ -311,7 +319,8 @@ @Test public void parseKnownAndUnknownOptions() { - OptionsParser parser = newOptionsParser(ExampleFoo.class, ExampleBaz.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(ExampleFoo.class, ExampleBaz.class).build(); List<String> opts = asList("--bar", "17", "--unknown", "option"); OptionsParsingException e = assertThrows(OptionsParsingException.class, () -> parser.parse(opts)); @@ -324,7 +333,7 @@ @Test public void parseAndOverrideWithEmptyStringToObtainNullValueInOption() throws OptionsParsingException { - OptionsParser parser = newOptionsParser(ExampleBoom.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(ExampleBoom.class).build(); // Override --boom value to the empty string parser.parse("--boom="); ExampleBoom boom = parser.getOptions(ExampleBoom.class); @@ -356,14 +365,20 @@ public void getOptionsAndGetResidueWithNoCallToParse() { // With no call to parse(), all options are at default values, and there's // no reside. - assertThat(newOptionsParser(ExampleFoo.class).getOptions(ExampleFoo.class).foo) + assertThat( + OptionsParser.builder() + .optionsClasses(ExampleFoo.class) + .build() + .getOptions(ExampleFoo.class) + .foo) .isEqualTo("defaultFoo"); - assertThat(newOptionsParser(ExampleFoo.class).getResidue()).isEmpty(); + assertThat(OptionsParser.builder().optionsClasses(ExampleFoo.class).build().getResidue()) + .isEmpty(); } @Test public void parserCanBeCalledRepeatedly() throws OptionsParsingException { - OptionsParser parser = newOptionsParser(ExampleFoo.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(ExampleFoo.class).build(); parser.parse("--foo", "foo1"); assertThat(parser.getOptions(ExampleFoo.class).foo).isEqualTo("foo1"); parser.parse(); @@ -374,7 +389,7 @@ @Test public void multipleOccuringOption() throws OptionsParsingException { - OptionsParser parser = newOptionsParser(ExampleFoo.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(ExampleFoo.class).build(); parser.parse("--bing", "abcdef", "--foo", "foo1", "--bing", "123456" ); assertThat(parser.getOptions(ExampleFoo.class).bing).containsExactly("abcdef", "123456"); } @@ -383,7 +398,7 @@ public void multipleOccurringOptionWithConverter() throws OptionsParsingException { // --bang is the same as --bing except that it has a "converter" specified. // This test also tests option values with embedded commas and spaces. - OptionsParser parser = newOptionsParser(ExampleFoo.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(ExampleFoo.class).build(); parser.parse("--bang", "abc,def ghi", "--foo", "foo1", "--bang", "123456" ); assertThat(parser.getOptions(ExampleFoo.class).bang).containsExactly("abc,def ghi", "123456"); } @@ -391,7 +406,8 @@ @Test public void parserIgnoresOptionsAfterMinusMinus() throws OptionsParsingException { - OptionsParser parser = newOptionsParser(ExampleFoo.class, ExampleBaz.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(ExampleFoo.class, ExampleBaz.class).build(); parser.parse("--foo", "well", "--baz", "here", "--", "--bar", "ignore"); ExampleFoo foo = parser.getOptions(ExampleFoo.class); ExampleBaz baz = parser.getOptions(ExampleBaz.class); @@ -403,7 +419,8 @@ @Test public void parserThrowsExceptionIfResidueIsNotAllowed() { - OptionsParser parser = newOptionsParser(false, ExampleFoo.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(ExampleFoo.class).allowResidue(false).build(); OptionsParsingException e = assertThrows( OptionsParsingException.class, () -> parser.parse("residue", "is", "not", "OK")); @@ -412,7 +429,8 @@ @Test public void multipleCallsToParse() throws Exception { - OptionsParser parser = newOptionsParser(true, ExampleFoo.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(ExampleFoo.class).allowResidue(true).build(); parser.parse("--foo", "one", "--bar", "43", "unknown1"); parser.parse("--foo", "two", "unknown2"); ExampleFoo foo = parser.getOptions(ExampleFoo.class); @@ -427,7 +445,8 @@ @Test public void toStringDoesntIncludeFlagsForOtherOptionsInParserInstance() throws Exception { - OptionsParser parser = newOptionsParser(ExampleFoo.class, ExampleBaz.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(ExampleFoo.class, ExampleBaz.class).build(); parser.parse("--foo", "foo", "--bar", "43", "--baz", "baz"); String fooString = parser.getOptions(ExampleFoo.class).toString(); @@ -565,7 +584,8 @@ @Test public void implicitDependencyHasImplicitDependency() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(ImplicitDependencyOptions.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(ImplicitDependencyOptions.class).build(); parser.parse( OptionPriority.PriorityCategory.COMMAND_LINE, null, Arrays.asList("--first=first")); assertThat(parser.getOptions(ImplicitDependencyOptions.class).first).isEqualTo("first"); @@ -587,7 +607,8 @@ @Test public void badImplicitDependency() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(BadImplicitDependencyOptions.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(BadImplicitDependencyOptions.class).build(); try { parser.parse( OptionPriority.PriorityCategory.COMMAND_LINE, null, Arrays.asList("--first=first")); @@ -611,7 +632,8 @@ @Test public void badExpansionOptions() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(BadExpansionOptions.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(BadExpansionOptions.class).build(); try { parser.parse(OptionPriority.PriorityCategory.COMMAND_LINE, null, Arrays.asList("--first")); } catch (AssertionError e) { @@ -650,7 +672,7 @@ assertThrows( "Should have failed due to null expansion function result", OptionsParser.ConstructionException.class, - () -> newOptionsParser(NullExpansionsOptions.class)); + () -> OptionsParser.builder().optionsClasses(NullExpansionsOptions.class).build()); assertThat(e).hasCauseThat().isInstanceOf(NullPointerException.class); assertThat(e).hasCauseThat().hasMessageThat().contains("null value in entry"); } @@ -725,7 +747,7 @@ public void describeOptionsWithExpansion() throws Exception { // We have to test this here rather than in OptionsTest because expansion functions require // that an options parser be constructed. - OptionsParser parser = OptionsParser.newOptionsParser(ExpansionOptions.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(ExpansionOptions.class).build(); String usage = parser.describeOptionsWithDeprecatedCategories( ImmutableMap.<String, String>of(), OptionsParser.HelpVerbosity.LONG); @@ -735,7 +757,7 @@ @Test public void overrideExpansionWithExplicit() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(ExpansionOptions.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(ExpansionOptions.class).build(); parser.parse( OptionPriority.PriorityCategory.COMMAND_LINE, null, @@ -747,7 +769,7 @@ @Test public void testExpansionOriginIsPropagatedToOption() throws OptionsParsingException { - OptionsParser parser = OptionsParser.newOptionsParser(ExpansionOptions.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(ExpansionOptions.class).build(); parser.parse(OptionPriority.PriorityCategory.COMMAND_LINE, null, Arrays.asList("--expands")); OptionValueDescription expansionDescription = parser.getOptionValueDescription("expands"); assertThat(expansionDescription).isNotNull(); @@ -770,7 +792,7 @@ @Test public void overrideExplicitWithExpansion() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(ExpansionOptions.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(ExpansionOptions.class).build(); parser.parse( OptionPriority.PriorityCategory.COMMAND_LINE, null, @@ -785,7 +807,7 @@ @Test public void noWarningsWhenOverrideExplicitWithExpansion() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(ExpansionOptions.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(ExpansionOptions.class).build(); parser.parse( OptionPriority.PriorityCategory.RC_FILE, null, @@ -800,7 +822,7 @@ @Test public void noWarningsWhenValueNotChanged() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(ExpansionOptions.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(ExpansionOptions.class).build(); parser.parse( OptionPriority.PriorityCategory.COMMAND_LINE, null, @@ -816,7 +838,8 @@ // allow multiples. @Test public void multipleExpansionOptionsWithValue() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(ExpansionMultipleOptions.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(ExpansionMultipleOptions.class).build(); parser.parse( OptionPriority.PriorityCategory.COMMAND_LINE, null, @@ -831,7 +854,8 @@ @Test public void checkExpansionValueWarning() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(ExpansionMultipleOptions.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(ExpansionMultipleOptions.class).build(); parser.parse( OptionPriority.PriorityCategory.COMMAND_LINE, null, @@ -847,7 +871,7 @@ @Test public void overrideWithHigherPriority() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(NullTestOptions.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(NullTestOptions.class).build(); parser.parse(OptionPriority.PriorityCategory.RC_FILE, null, Arrays.asList("--simple=a")); assertThat(parser.getOptions(NullTestOptions.class).simple).isEqualTo("a"); parser.parse(OptionPriority.PriorityCategory.COMMAND_LINE, null, Arrays.asList("--simple=b")); @@ -856,7 +880,7 @@ @Test public void overrideWithLowerPriority() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(NullTestOptions.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(NullTestOptions.class).build(); parser.parse(OptionPriority.PriorityCategory.COMMAND_LINE, null, Arrays.asList("--simple=a")); assertThat(parser.getOptions(NullTestOptions.class).simple).isEqualTo("a"); parser.parse(OptionPriority.PriorityCategory.RC_FILE, null, Arrays.asList("--simple=b")); @@ -865,20 +889,20 @@ @Test public void getOptionValueDescriptionWithNonExistingOption() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(NullTestOptions.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(NullTestOptions.class).build(); assertThrows( IllegalArgumentException.class, () -> parser.getOptionValueDescription("notexisting")); } @Test public void getOptionValueDescriptionWithoutValue() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(NullTestOptions.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(NullTestOptions.class).build(); assertThat(parser.getOptionValueDescription("simple")).isNull(); } @Test public void getOptionValueDescriptionWithValue() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(NullTestOptions.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(NullTestOptions.class).build(); parser.parse( OptionPriority.PriorityCategory.COMMAND_LINE, "my description", @@ -929,7 +953,8 @@ @Test public void warningForImplicitOverridingExplicitOption() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(ImplicitDependencyWarningOptions.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(ImplicitDependencyWarningOptions.class).build(); parser.parse("--second=second", "--first"); assertThat(parser.getWarnings()) .containsExactly( @@ -939,7 +964,8 @@ @Test public void warningForExplicitOverridingImplicitOption() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(ImplicitDependencyWarningOptions.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(ImplicitDependencyWarningOptions.class).build(); parser.parse("--first"); assertThat(parser.getWarnings()).isEmpty(); parser.parse("--second=second"); @@ -951,7 +977,8 @@ @Test public void warningForExplicitOverridingImplicitOptionInSameCall() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(ImplicitDependencyWarningOptions.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(ImplicitDependencyWarningOptions.class).build(); parser.parse("--first", "--second=second"); assertThat(parser.getWarnings()) .containsExactly( @@ -961,7 +988,8 @@ @Test public void warningForImplicitOverridingImplicitOption() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(ImplicitDependencyWarningOptions.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(ImplicitDependencyWarningOptions.class).build(); parser.parse("--first"); assertThat(parser.getWarnings()).isEmpty(); parser.parse("--third=third"); @@ -973,7 +1001,8 @@ @Test public void noWarningsForNonConflictingOverrides() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(ImplicitDependencyWarningOptions.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(ImplicitDependencyWarningOptions.class).build(); parser.parse("--first", "--second=requiredByFirst"); ImplicitDependencyWarningOptions options = parser.getOptions(ImplicitDependencyWarningOptions.class); @@ -984,7 +1013,8 @@ @Test public void warningForImplicitRequirementsExpandedForDefaultValue() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(ImplicitDependencyWarningOptions.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(ImplicitDependencyWarningOptions.class).build(); parser.parse("--nofirst"); ImplicitDependencyWarningOptions options = parser.getOptions(ImplicitDependencyWarningOptions.class); @@ -1001,7 +1031,8 @@ @Test public void testDependentOriginIsPropagatedToOption() throws OptionsParsingException { - OptionsParser parser = OptionsParser.newOptionsParser(ImplicitDependencyWarningOptions.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(ImplicitDependencyWarningOptions.class).build(); parser.parse(OptionPriority.PriorityCategory.COMMAND_LINE, null, Arrays.asList("--first")); OptionValueDescription first = parser.getOptionValueDescription("first"); assertThat(first).isNotNull(); @@ -1055,7 +1086,9 @@ public void testCanonicalizeExcludesImplicitDependencyOnRepeatableOption() throws OptionsParsingException { OptionsParser parser = - OptionsParser.newOptionsParser(ImplicitDependencyOnAllowMultipleOptions.class); + OptionsParser.builder() + .optionsClasses(ImplicitDependencyOnAllowMultipleOptions.class) + .build(); parser.parse( OptionPriority.PriorityCategory.COMMAND_LINE, null, @@ -1084,7 +1117,9 @@ public void testCanonicalizeExcludesImplicitDependencyForOtherwiseUnmentionedRepeatableOption() throws OptionsParsingException { OptionsParser parser = - OptionsParser.newOptionsParser(ImplicitDependencyOnAllowMultipleOptions.class); + OptionsParser.builder() + .optionsClasses(ImplicitDependencyOnAllowMultipleOptions.class) + .build(); parser.parse(OptionPriority.PriorityCategory.COMMAND_LINE, null, Arrays.asList("--first")); OptionValueDescription first = parser.getOptionValueDescription("first"); assertThat(first).isNotNull(); @@ -1148,21 +1183,21 @@ @Test public void deprecationWarning() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(WarningOptions.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(WarningOptions.class).build(); parser.parse(OptionPriority.PriorityCategory.COMMAND_LINE, null, Arrays.asList("--first")); assertThat(parser.getWarnings()).isEqualTo(Arrays.asList("Option 'first' is deprecated")); } @Test public void deprecationWarningForListOption() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(WarningOptions.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(WarningOptions.class).build(); parser.parse(OptionPriority.PriorityCategory.COMMAND_LINE, null, Arrays.asList("--second=a")); assertThat(parser.getWarnings()).isEqualTo(Arrays.asList("Option 'second' is deprecated")); } @Test public void deprecationWarningForExpansionOption() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(WarningOptions.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(WarningOptions.class).build(); parser.parse(OptionPriority.PriorityCategory.COMMAND_LINE, null, Arrays.asList("--third")); assertThat(parser.getWarnings()).isEqualTo(Arrays.asList("Option 'third' is deprecated")); assertThat(parser.getOptions(WarningOptions.class).fourth).isTrue(); @@ -1170,7 +1205,7 @@ @Test public void deprecationWarningForAbbreviatedExpansionOption() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(WarningOptions.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(WarningOptions.class).build(); parser.parse(OptionPriority.PriorityCategory.COMMAND_LINE, null, Arrays.asList("-t")); assertThat(parser.getWarnings()).isEqualTo(Arrays.asList("Option 'third' is deprecated")); assertThat(parser.getOptions(WarningOptions.class).fourth).isTrue(); @@ -1217,7 +1252,7 @@ @Test public void newDeprecationWarning() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(NewWarningOptions.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(NewWarningOptions.class).build(); parser.parse(OptionPriority.PriorityCategory.COMMAND_LINE, null, Arrays.asList("--first")); assertThat(parser.getWarnings()) .isEqualTo(Arrays.asList("Option 'first' is deprecated: it's gone")); @@ -1225,7 +1260,7 @@ @Test public void newDeprecationWarningForListOption() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(NewWarningOptions.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(NewWarningOptions.class).build(); parser.parse(OptionPriority.PriorityCategory.COMMAND_LINE, null, Arrays.asList("--second=a")); assertThat(parser.getWarnings()) .isEqualTo(Arrays.asList("Option 'second' is deprecated: sorry, no replacement")); @@ -1233,7 +1268,7 @@ @Test public void newDeprecationWarningForExpansionOption() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(NewWarningOptions.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(NewWarningOptions.class).build(); parser.parse(OptionPriority.PriorityCategory.COMMAND_LINE, null, Arrays.asList("--third")); assertThat(parser.getWarnings()) .isEqualTo(Arrays.asList("Option 'third' is deprecated: use --forth instead")); @@ -1270,7 +1305,8 @@ @Test public void warningForExpansionOverridingExplicitOption() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(ExpansionWarningOptions.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(ExpansionWarningOptions.class).build(); parser.parse("--underlying=underlying", "--first"); assertThat(parser.getWarnings()) .containsExactly( @@ -1280,7 +1316,8 @@ @Test public void warningForTwoConflictingExpansionOptions() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(ExpansionWarningOptions.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(ExpansionWarningOptions.class).build(); parser.parse("--first", "--second"); assertThat(parser.getWarnings()) .containsExactly( @@ -1353,7 +1390,8 @@ @Test public void asListOfUnparsedOptions() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(IntrospectionExample.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(IntrospectionExample.class).build(); parser.parse( OptionPriority.PriorityCategory.COMMAND_LINE, "source", @@ -1391,7 +1429,8 @@ @Test public void asListOfExplicitOptions() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(IntrospectionExample.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(IntrospectionExample.class).build(); parser.parse( OptionPriority.PriorityCategory.COMMAND_LINE, "source", @@ -1439,7 +1478,8 @@ @Test public void asListOfEffectiveOptions() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(IntrospectionExample.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(IntrospectionExample.class).build(); parser.parse( OptionPriority.PriorityCategory.COMMAND_LINE, "command line source", @@ -1488,7 +1528,7 @@ // "--option from blazerc unexpectedly overrides --option from command line" @Test public void overrideListOptions() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(ListExample.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(ListExample.class).build(); parser.parse( OptionPriority.PriorityCategory.COMMAND_LINE, "command line source", @@ -1503,7 +1543,7 @@ @Test public void testDashDash() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(ExampleFoo.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(ExampleFoo.class).build(); parser.parse( PriorityCategory.COMMAND_LINE, @@ -1518,7 +1558,7 @@ @Test public void listOptionsHaveCorrectPriorities() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(ListExample.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(ListExample.class).build(); parser.parse( PriorityCategory.COMMAND_LINE, "command line source, part 1", @@ -1565,7 +1605,8 @@ @Test public void commaSeparatedOptionsWithAllowMultiple() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(CommaSeparatedOptionsExample.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(CommaSeparatedOptionsExample.class).build(); parser.parse( OptionPriority.PriorityCategory.COMMAND_LINE, "command line source", @@ -1581,7 +1622,8 @@ @Test public void commaSeparatedListOptionsHaveCorrectPriorities() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(CommaSeparatedOptionsExample.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(CommaSeparatedOptionsExample.class).build(); parser.parse( OptionPriority.PriorityCategory.COMMAND_LINE, "command line source", @@ -1671,7 +1713,8 @@ public static List<String> canonicalize(Class<? extends OptionsBase> optionsClass, String... args) throws OptionsParsingException { - OptionsParser parser = OptionsParser.newOptionsParser(false, optionsClass); + OptionsParser parser = + OptionsParser.builder().optionsClasses(optionsClass).allowResidue(false).build(); parser.parse(Arrays.asList(args)); return parser.canonicalize(); } @@ -1790,7 +1833,7 @@ @Test public void parseLong() throws OptionsParsingException { - OptionsParser parser = newOptionsParser(LongValueExample.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(LongValueExample.class).build(); parser.parse(""); LongValueExample result = parser.getOptions(LongValueExample.class); assertThat(result.longval).isEqualTo(2147483648L); @@ -1807,7 +1850,7 @@ @Test public void intOutOfBounds() { - OptionsParser parser = newOptionsParser(LongValueExample.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(LongValueExample.class).build(); OptionsParsingException e = assertThrows(OptionsParsingException.class, () -> parser.parse("--intval=2147483648")); assertThat(e).hasMessageThat().contains("'2147483648' is not an int"); @@ -1826,13 +1869,13 @@ @Test public void testOldName() throws OptionsParsingException { - OptionsParser parser = newOptionsParser(OldNameExample.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(OldNameExample.class).build(); parser.parse("--old_name=foo"); OldNameExample result = parser.getOptions(OldNameExample.class); assertThat(result.flag).isEqualTo("foo"); // Should also work by its new name. - parser = newOptionsParser(OldNameExample.class); + parser = OptionsParser.builder().optionsClasses(OldNameExample.class).build(); parser.parse("--new_name=foo"); result = parser.getOptions(OldNameExample.class); assertThat(result.flag).isEqualTo("foo"); @@ -1858,7 +1901,8 @@ @Test public void testBooleanUnderscorePrefixError() { - OptionsParser parser = newOptionsParser(ExampleBooleanFooOptions.class); + OptionsParser parser = + OptionsParser.builder().optionsClasses(ExampleBooleanFooOptions.class).build(); OptionsParsingException e = assertThrows( "--no_foo should fail to parse.", @@ -1994,7 +2038,7 @@ @Test public void serializable() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(CoreTypesOptions.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(CoreTypesOptions.class).build(); parser.parse("--foo=true", "--bar=xyz"); CoreTypesOptions options = parser.getOptions(CoreTypesOptions.class); @@ -2013,10 +2057,10 @@ public void stableSerialization() throws Exception { // Construct options two different ways to get the same result, and confirm that the serialized // representation is identical. - OptionsParser parser1 = OptionsParser.newOptionsParser(CoreTypesOptions.class); + OptionsParser parser1 = OptionsParser.builder().optionsClasses(CoreTypesOptions.class).build(); parser1.parse("--foo=true", "--bar=xyz"); CoreTypesOptions options1 = parser1.getOptions(CoreTypesOptions.class); - OptionsParser parser2 = OptionsParser.newOptionsParser(CoreTypesOptions.class); + OptionsParser parser2 = OptionsParser.builder().optionsClasses(CoreTypesOptions.class).build(); parser2.parse("--bar=abc", "--foo=1"); CoreTypesOptions options2 = parser2.getOptions(CoreTypesOptions.class); options2.bar = "xyz"; @@ -2067,7 +2111,7 @@ @Test public void getOptionsCompletionShouldFilterUndocumentedOptions() throws Exception { - OptionsParser parser = OptionsParser.newOptionsParser(CompletionOptions.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(CompletionOptions.class).build(); assertThat(parser.getOptionsCompletion().split("\n")) .isEqualTo(new String[] {"--a", "--noa", "--b", "--nob"}); } @@ -2091,7 +2135,9 @@ assertThrows( NullPointerException.class, () -> - OptionsParser.newOptionsParser(CompletionOptions.class) + OptionsParser.builder() + .optionsClasses(CompletionOptions.class) + .build() .visitOptions(predicate, visitor)); assertThat(ex).hasMessageThat().isEqualTo(expectedMessage); } @@ -2112,7 +2158,7 @@ List<String> names = new ArrayList<>(); Consumer<OptionDefinition> visitor = option -> names.add(option.getOptionName()); - OptionsParser parser = OptionsParser.newOptionsParser(CompletionOptions.class); + OptionsParser parser = OptionsParser.builder().optionsClasses(CompletionOptions.class).build(); parser.visitOptions(predicate, visitor); return names;