Add a TestType utility enum that can be used to detect if Bazel is running in a test, and use it throughout our codebase.

PiperOrigin-RevId: 310249628
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/BUILD b/src/main/java/com/google/devtools/build/lib/skyframe/BUILD
index 4300a3c..9e97667 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/BUILD
@@ -101,7 +101,6 @@
         ":action_sketch_function",
         ":action_template_expansion_function",
         ":action_utils",
-        ":actiongraph/base_cache",
         ":actiongraph/known_artifacts",
         ":actiongraph/known_aspect_descriptors",
         ":actiongraph/known_configurations",
@@ -109,16 +108,12 @@
         ":actiongraph/known_rule_class_strings",
         ":actiongraph/known_targets",
         ":actiongraph/v2/aquery_output_handler",
-        ":actiongraph/v2/base_cache",
         ":actiongraph/v2/known_artifacts",
         ":actiongraph/v2/known_aspect_descriptors",
         ":actiongraph/v2/known_configurations",
         ":actiongraph/v2/known_nested_sets",
-        ":actiongraph/v2/known_path_fragments",
         ":actiongraph/v2/known_rule_class_strings",
         ":actiongraph/v2/known_targets",
-        ":actiongraph/v2/monolithic_output_handler",
-        ":actiongraph/v2/streamed_output_handler",
         ":artifact_conflict_finder",
         ":artifact_function",
         ":artifact_nested_set_function",
@@ -194,7 +189,6 @@
         ":recursive_pkg_value",
         ":repository_mapping_function",
         ":repository_mapping_value",
-        ":repository_value",
         ":sane_analysis_exception",
         ":sky_functions",
         ":sky_value_dirtiness_checker",
@@ -259,7 +253,6 @@
         "//src/main/java/com/google/devtools/build/lib/analysis:duplicate_exception",
         "//src/main/java/com/google/devtools/build/lib/analysis:inconsistent_aspect_order_exception",
         "//src/main/java/com/google/devtools/build/lib/analysis:platform_options",
-        "//src/main/java/com/google/devtools/build/lib/analysis:provider_collection",
         "//src/main/java/com/google/devtools/build/lib/analysis:toolchain_collection",
         "//src/main/java/com/google/devtools/build/lib/analysis:toolchain_context",
         "//src/main/java/com/google/devtools/build/lib/analysis:top_level_artifact_context",
@@ -272,7 +265,6 @@
         "//src/main/java/com/google/devtools/build/lib/causes",
         "//src/main/java/com/google/devtools/build/lib/clock",
         "//src/main/java/com/google/devtools/build/lib/cmdline",
-        "//src/main/java/com/google/devtools/build/lib/cmdline:LabelValidator",
         "//src/main/java/com/google/devtools/build/lib/collect/compacthashset",
         "//src/main/java/com/google/devtools/build/lib/collect/nestedset",
         "//src/main/java/com/google/devtools/build/lib/concurrent",
@@ -299,6 +291,7 @@
         "//src/main/java/com/google/devtools/build/lib/syntax:evaluator",
         "//src/main/java/com/google/devtools/build/lib/syntax:frontend",
         "//src/main/java/com/google/devtools/build/lib/util",
+        "//src/main/java/com/google/devtools/build/lib/util:TestType",
         "//src/main/java/com/google/devtools/build/lib/util:abrupt_exit_exception",
         "//src/main/java/com/google/devtools/build/lib/util:detailed_exit_code",
         "//src/main/java/com/google/devtools/build/lib/util:exit_code",
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ExternalFilesHelper.java b/src/main/java/com/google/devtools/build/lib/skyframe/ExternalFilesHelper.java
index 6fad4fc..c4e85d1 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ExternalFilesHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ExternalFilesHelper.java
@@ -24,6 +24,7 @@
 import com.google.devtools.build.lib.repository.ExternalPackageHelper;
 import com.google.devtools.build.lib.rules.repository.RepositoryFunction;
 import com.google.devtools.build.lib.util.Pair;
+import com.google.devtools.build.lib.util.TestType;
 import com.google.devtools.build.lib.vfs.Path;
 import com.google.devtools.build.lib.vfs.RootedPath;
 import com.google.devtools.build.skyframe.SkyFunction;
@@ -33,8 +34,6 @@
 
 /** Common utilities for dealing with paths outside the package roots. */
 public class ExternalFilesHelper {
-  private static final boolean IN_TEST = System.getenv("TEST_TMPDIR") != null;
-
   private static final GoogleLogger logger = GoogleLogger.forEnclosingClass();
 
   private final AtomicReference<PathPackageLocator> pkgLocator;
@@ -72,7 +71,7 @@
       BlazeDirectories directories,
       ManagedDirectoriesKnowledge managedDirectoriesKnowledge,
       ExternalPackageHelper externalPackageHelper) {
-    return IN_TEST
+    return TestType.isInTest()
         ? createForTesting(
             pkgLocator,
             externalFileAction,
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/BUILD b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/BUILD
index 294c303..0de6183 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/BUILD
@@ -42,6 +42,7 @@
     name = "constants",
     srcs = ["SerializationConstants.java"],
     deps = [
+        "//src/main/java/com/google/devtools/build/lib/util:TestType",
         "//src/main/java/com/google/devtools/build/lib/util:resource_usage",
     ],
 )
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/SerializationConstants.java b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/SerializationConstants.java
index 11f68a0..f518129 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/SerializationConstants.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/SerializationConstants.java
@@ -15,6 +15,7 @@
 package com.google.devtools.build.lib.skyframe.serialization;
 
 import com.google.devtools.build.lib.util.ResourceUsage;
+import com.google.devtools.build.lib.util.TestType;
 
 /**
  * Some static constants for deciding serialization behavior.
@@ -24,7 +25,6 @@
   /** Number of threads in deserialization pools. */
   public static final int DESERIALIZATION_POOL_SIZE = 2 * ResourceUsage.getAvailableProcessors();
 
-  private static final boolean IN_TEST = System.getenv("TEST_TMPDIR") != null;
   private static final boolean CHECK_SERIALIZATION =
       System.getenv("DONT_SANITY_CHECK_SERIALIZATION") == null;
 
@@ -32,6 +32,6 @@
    * Returns true if serialization should be validated on all Skyframe writes.
    */
   public static boolean shouldCheckSerializationBecauseInTest() {
-    return IN_TEST && CHECK_SERIALIZATION;
+    return TestType.isInTest() && CHECK_SERIALIZATION;
   }
 }