Implement a flag to deprecate old constructor for depsets (`set`)

Usage: --incompatible_depset_constructor=true (the default value is false).
PiperOrigin-RevId: 154971526
diff --git a/src/test/java/com/google/devtools/build/lib/testutil/TestMode.java b/src/test/java/com/google/devtools/build/lib/testutil/TestMode.java
index 21132c2..12b8e6b 100644
--- a/src/test/java/com/google/devtools/build/lib/testutil/TestMode.java
+++ b/src/test/java/com/google/devtools/build/lib/testutil/TestMode.java
@@ -17,19 +17,30 @@
 import com.google.devtools.build.lib.syntax.BazelLibrary;
 import com.google.devtools.build.lib.syntax.Environment;
 import com.google.devtools.build.lib.syntax.Mutability;
+import com.google.devtools.build.lib.syntax.SkylarkSemanticsOptions;
+import com.google.devtools.common.options.OptionsParser;
 
 /**
  * Describes a particular testing mode by determining how the
  * appropriate {@code Environment} has to be created
  */
 public abstract class TestMode {
+  private static SkylarkSemanticsOptions parseSkylarkSemanticsOptions(String... skylarkOptions)
+      throws Exception {
+    OptionsParser parser = OptionsParser.newOptionsParser(SkylarkSemanticsOptions.class);
+    parser.parse(skylarkOptions);
+    return parser.getOptions(SkylarkSemanticsOptions.class);
+  }
+
   public static final TestMode BUILD =
       new TestMode() {
         @Override
-        public Environment createEnvironment(EventHandler eventHandler, Environment environment) {
+        public Environment createEnvironment(EventHandler eventHandler, String... skylarkOptions)
+            throws Exception {
           return Environment.builder(Mutability.create("build test"))
-              .setGlobals(environment == null ? BazelLibrary.GLOBALS : environment.getGlobals())
+              .setGlobals(BazelLibrary.GLOBALS)
               .setEventHandler(eventHandler)
+              .setSemantics(TestMode.parseSkylarkSemanticsOptions(skylarkOptions))
               .build();
         }
       };
@@ -37,13 +48,16 @@
   public static final TestMode SKYLARK =
       new TestMode() {
         @Override
-        public Environment createEnvironment(EventHandler eventHandler, Environment environment) {
+        public Environment createEnvironment(EventHandler eventHandler, String... skylarkOptions)
+            throws Exception {
           return Environment.builder(Mutability.create("skylark test"))
-              .setGlobals(environment == null ? BazelLibrary.GLOBALS : environment.getGlobals())
+              .setGlobals(BazelLibrary.GLOBALS)
               .setEventHandler(eventHandler)
+              .setSemantics(TestMode.parseSkylarkSemanticsOptions(skylarkOptions))
               .build();
         }
       };
 
-  public abstract Environment createEnvironment(EventHandler eventHandler, Environment environment);
+  public abstract Environment createEnvironment(EventHandler eventHandler, String... skylarkOptions)
+      throws Exception;
 }