Skip to content

Commit

Permalink
TMP: Test that all Starlark options are loaded
Browse files Browse the repository at this point in the history
  • Loading branch information
fmeum committed Jul 20, 2023
1 parent 6609d6d commit e55b1ba
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Joiner;
import com.google.common.base.Preconditions;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
Expand Down Expand Up @@ -418,9 +419,10 @@ DetailedExitCode parseStarlarkOptions(CommandEnvironment env) {
return DetailedExitCode.success();
}
try {
StarlarkOptionsParser.newStarlarkOptionsParser(
new SkyframeExecutorTargetLoader(env), optionsParser)
.parse();
Preconditions.checkState(
StarlarkOptionsParser.newStarlarkOptionsParser(
new SkyframeExecutorTargetLoader(env), optionsParser)
.parse());
} catch (OptionsParsingException e) {
String logMessage = "Error parsing Starlark options";
logger.atInfo().withCause(e).log("%s", logMessage);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
import com.google.devtools.common.options.Converter;
import com.google.devtools.common.options.OptionsParser;
import com.google.devtools.common.options.OptionsParsingException;
import com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
Expand Down Expand Up @@ -103,7 +102,6 @@ public static StarlarkOptionsParser newStarlarkOptionsParser(
// OptionsParserImpl.identifyOptionAndPossibleArgument. Consider combining. This would probably
// require multiple rounds of parsing to fit starlark-defined options into native option format.
@VisibleForTesting
@CanIgnoreReturnValue
public boolean parse() throws OptionsParsingException {
return parseGivenArgs(nativeOptionsParser.getSkippedArgs());
}
Expand All @@ -115,7 +113,6 @@ public boolean parse() throws OptionsParsingException {
* work to retrieve build setting targets (after which it'll call this method again)
*/
@VisibleForTesting
@CanIgnoreReturnValue
public boolean parseGivenArgs(List<String> args) throws OptionsParsingException {
// Map of <option name (label), <unparsed option value, loaded option>>.
Multimap<String, Pair<String, Target>> unparsedOptions = LinkedListMultimap.create();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import static com.google.devtools.common.options.Converters.BLAZE_ALIASING_FLAG;

import com.google.common.base.Joiner;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.cmdline.RepositoryMapping;
import com.google.devtools.build.lib.events.Event;
Expand Down Expand Up @@ -200,7 +201,7 @@ public BlazeCommandResult exec(CommandEnvironment env, OptionsParsingResult opti
StarlarkOptionsParser.newStarlarkOptionsParser(
new SkyframeExecutorTargetLoader(env), parser);
try {
starlarkOptionsParser.parse();
Preconditions.checkState(starlarkOptionsParser.parse());
} catch (OptionsParsingException e) {
return reportAndCreateCommandFailure(
env, e.getMessage(), FailureDetails.Command.Code.STARLARK_OPTIONS_PARSE_FAILURE);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@

package com.google.devtools.build.lib.starlark.util;

import static com.google.common.truth.Truth.assertThat;

import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
Expand Down Expand Up @@ -76,7 +78,7 @@ protected OptionsParsingResult parseStarlarkOptions(String options, boolean only
if (!onlyStarlarkParser) {
optionsParser.parse(asList);
}
starlarkOptionsParser.parseGivenArgs(asList);
assertThat(starlarkOptionsParser.parseGivenArgs(asList)).isTrue();
return starlarkOptionsParser.getNativeOptionsParserFortesting();
}

Expand All @@ -86,11 +88,11 @@ protected OptionsParsingResult parseStarlarkOptions(
List<String> bazelrcOptionsList = Arrays.asList(bazelrcOptions.split(" "));
optionsParser.parse(PriorityCategory.COMMAND_LINE, /* source= */ null, commandLineOptionsList);
optionsParser.parse(PriorityCategory.RC_FILE, "fake.bazelrc", bazelrcOptionsList);
starlarkOptionsParser.parseGivenArgs(
assertThat(starlarkOptionsParser.parseGivenArgs(
ImmutableList.<String>builder()
.addAll(commandLineOptionsList)
.addAll(bazelrcOptionsList)
.build());
.build())).isTrue();
return starlarkOptionsParser.getNativeOptionsParserFortesting();
}

Expand Down

0 comments on commit e55b1ba

Please sign in to comment.