Split out test setup for Starlark flags so that it can be re-used elsewhere.
PiperOrigin-RevId: 283331423
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/StarlarkOptionsParsingTest.java b/src/test/java/com/google/devtools/build/lib/skylark/StarlarkOptionsParsingTest.java
index fbcd510..8abbff2 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/StarlarkOptionsParsingTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/StarlarkOptionsParsingTest.java
@@ -17,93 +17,16 @@
import static com.google.common.truth.Truth.assertThat;
import static com.google.devtools.build.lib.testutil.MoreAsserts.assertThrows;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Iterables;
-import com.google.devtools.build.lib.events.StoredEventHandler;
-import com.google.devtools.build.lib.packages.StarlarkSemanticsOptions;
-import com.google.devtools.build.lib.pkgcache.LoadingOptions;
-import com.google.devtools.build.lib.pkgcache.PackageCacheOptions;
-import com.google.devtools.build.lib.runtime.ClientOptions;
-import com.google.devtools.build.lib.runtime.CommonCommandOptions;
-import com.google.devtools.build.lib.runtime.KeepGoingOption;
-import com.google.devtools.build.lib.runtime.StarlarkOptionsParser;
-import com.google.devtools.build.lib.runtime.UiOptions;
-import com.google.devtools.build.lib.skylark.util.SkylarkTestCase;
-import com.google.devtools.build.lib.vfs.PathFragment;
-import com.google.devtools.common.options.OptionsBase;
-import com.google.devtools.common.options.OptionsParser;
+import com.google.devtools.build.lib.skylark.util.StarlarkOptionsTestCase;
import com.google.devtools.common.options.OptionsParsingException;
import com.google.devtools.common.options.OptionsParsingResult;
-import java.util.Arrays;
-import java.util.List;
-import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
/** Unit test for the {@code StarlarkOptionsParser}. */
@RunWith(JUnit4.class)
-public class StarlarkOptionsParsingTest extends SkylarkTestCase {
-
- private StarlarkOptionsParser starlarkOptionsParser;
-
- private static final List<Class<? extends OptionsBase>> requiredOptionsClasses =
- ImmutableList.of(
- PackageCacheOptions.class,
- StarlarkSemanticsOptions.class,
- KeepGoingOption.class,
- LoadingOptions.class,
- ClientOptions.class,
- UiOptions.class,
- CommonCommandOptions.class);
-
- @Before
- public void setUp() throws Exception {
- optionsParser =
- OptionsParser.builder()
- .optionsClasses(
- Iterables.concat(
- requiredOptionsClasses, ruleClassProvider.getConfigurationOptions()))
- .build();
- starlarkOptionsParser =
- StarlarkOptionsParser.newStarlarkOptionsParserForTesting(
- skyframeExecutor, reporter, PathFragment.EMPTY_FRAGMENT, optionsParser);
- }
-
- private OptionsParsingResult parseStarlarkOptions(String options) throws Exception {
- starlarkOptionsParser.setResidueForTesting(Arrays.asList(options.split(" ")));
- starlarkOptionsParser.parse(new StoredEventHandler());
- return starlarkOptionsParser.getNativeOptionsParserFortesting();
- }
-
- private void writeBuildSetting(String type, String defaultValue, boolean isFlag)
- throws Exception {
- setSkylarkSemanticsOptions("--experimental_build_setting_api=True");
-
- String flag = isFlag ? "True" : "False";
-
- scratch.file(
- "test/build_setting.bzl",
- "def _build_setting_impl(ctx):",
- " return []",
- type + "_setting = rule(",
- " implementation = _build_setting_impl,",
- " build_setting = config." + type + "(flag=" + flag + ")",
- ")");
- scratch.file(
- "test/BUILD",
- "load('//test:build_setting.bzl', '" + type + "_setting')",
- type
- + "_setting(name = 'my_"
- + type
- + "_setting', build_setting_default = "
- + defaultValue
- + ")");
- }
-
- private void writeBasicIntFlag() throws Exception {
- writeBuildSetting("int", "42", true);
- }
+public class StarlarkOptionsParsingTest extends StarlarkOptionsTestCase {
// test --flag=value
@Test
@@ -220,10 +143,6 @@
assertThat(e).hasMessageThat().isEqualTo("Unrecognized option: //test:my_int_setting=666");
}
- private void writeBasicBoolFlag() throws Exception {
- writeBuildSetting("bool", "True", true);
- }
-
// test --bool_flag
@Test
public void testBooleanFlag() throws Exception {