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 {