Split up how default flags are added in AnalysisTestCases.

Not all of these flags are needed for all tests; some tests may break WITH the
excess flags.

Progress on #6524.

PiperOrigin-RevId: 242658845
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
index 2b49b0f..5f8ba96 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
@@ -106,10 +106,18 @@
 
   /** All the flags that can be passed to {@link BuildView#update}. */
   public enum Flag {
+    // The --keep_going flag.
     KEEP_GOING,
     // Configurations that only include the fragments a target needs to properly analyze.
     TRIMMED_CONFIGURATIONS,
-    SKYFRAME_PREPARE_ANALYSIS
+    // The --skyframe_prepare_analysis flag.
+    SKYFRAME_PREPARE_ANALYSIS,
+    // Flags for visibility to default to public.
+    PUBLIC_VISIBILITY,
+    // Flags for CPU to work (be set to k8) in test mode.
+    CPU_K8,
+    // Flags from TestConstants.PRODUCT_SPECIFIC_FLAGS.
+    PRODUCT_SPECIFIC_FLAGS
   }
 
   /** Helper class to make it easy to enable and disable flags. */
@@ -280,8 +288,15 @@
                     LoadingPhaseThreadsOption.class,
                     LoadingOptions.class),
                 ruleClassProvider.getConfigurationOptions()));
-    optionsParser.parse("--default_visibility=public", "--cpu=k8", "--host_cpu=k8");
-    optionsParser.parse(TestConstants.PRODUCT_SPECIFIC_FLAGS);
+    if (defaultFlags().contains(Flag.PUBLIC_VISIBILITY)) {
+      optionsParser.parse("--default_visibility=public");
+    }
+    if (defaultFlags().contains(Flag.CPU_K8)) {
+      optionsParser.parse("--cpu=k8", "--host_cpu=k8");
+    }
+    if (defaultFlags().contains(Flag.PRODUCT_SPECIFIC_FLAGS)) {
+      optionsParser.parse(TestConstants.PRODUCT_SPECIFIC_FLAGS);
+    }
     optionsParser.parse(args);
     if (defaultFlags().contains(Flag.TRIMMED_CONFIGURATIONS)) {
       optionsParser.parse("--experimental_dynamic_configs=on");
@@ -291,7 +306,10 @@
   }
 
   protected FlagBuilder defaultFlags() {
-    return new FlagBuilder();
+    return new FlagBuilder()
+        .with(Flag.PUBLIC_VISIBILITY)
+        .with(Flag.CPU_K8)
+        .with(Flag.PRODUCT_SPECIFIC_FLAGS);
   }
 
   protected Action getGeneratingAction(Artifact artifact) {
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkDefinedAspectsTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkDefinedAspectsTest.java
index e471c19..05f9cd8 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkDefinedAspectsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkDefinedAspectsTest.java
@@ -2752,7 +2752,7 @@
   public static final class WithKeepGoing extends SkylarkDefinedAspectsTest {
     @Override
     protected FlagBuilder defaultFlags() {
-      return new FlagBuilder().with(Flag.KEEP_GOING);
+      return super.defaultFlags().with(Flag.KEEP_GOING);
     }
 
     @Override