Enable main methods in IntelliJ with new-gradle

Change-Id: Iccc6461893a54fb3987960c5c469f4bdb44f2184
diff --git a/d8_r8/test_modules/tests_java_8/build.gradle.kts b/d8_r8/test_modules/tests_java_8/build.gradle.kts
index d46599a..aa3db57 100644
--- a/d8_r8/test_modules/tests_java_8/build.gradle.kts
+++ b/d8_r8/test_modules/tests_java_8/build.gradle.kts
@@ -90,6 +90,14 @@
     dependsOn(gradle.includedBuild("shared").task(":downloadDeps"))
   }
 
+  withType<JavaExec> {
+    if (name.endsWith("main()")) {
+      // IntelliJ pass the main execution through a stream which is
+      // not compatible with gradle configuration cache.
+      notCompatibleWithConfigurationCache("JavaExec created by IntelliJ")
+    }
+  }
+
   withType<KotlinCompile> {
     enabled = false
   }
diff --git a/src/test/java/com/android/tools/r8/cfmethodgeneration/MethodGenerationBase.java b/src/test/java/com/android/tools/r8/cfmethodgeneration/MethodGenerationBase.java
index 76485a8..80457af 100644
--- a/src/test/java/com/android/tools/r8/cfmethodgeneration/MethodGenerationBase.java
+++ b/src/test/java/com/android/tools/r8/cfmethodgeneration/MethodGenerationBase.java
@@ -5,6 +5,7 @@
 package com.android.tools.r8.cfmethodgeneration;
 
 import com.android.tools.r8.ToolHelper;
+import com.android.tools.r8.ToolHelper.TestDataSourceSet;
 import com.android.tools.r8.cf.CfCodePrinter;
 import com.android.tools.r8.graph.CfCode;
 import com.android.tools.r8.graph.ClassKind;
@@ -369,4 +370,9 @@
       printer.println("}");
     }
   }
+
+  protected static void setUpSystemPropertiesForMain(TestDataSourceSet sourceSet) {
+    System.setProperty("USE_NEW_GRADLE_SETUP", "true");
+    System.setProperty("TEST_DATA_LOCATION", sourceSet.getBuildDir().toString());
+  }
 }
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/generation/GenerateDesugaredLibraryBridge.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/generation/GenerateDesugaredLibraryBridge.java
index bf45240..71541b8 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/generation/GenerateDesugaredLibraryBridge.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/generation/GenerateDesugaredLibraryBridge.java
@@ -9,6 +9,7 @@
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.TestParametersCollection;
 import com.android.tools.r8.TestRuntime.CfVm;
+import com.android.tools.r8.ToolHelper.TestDataSourceSet;
 import com.android.tools.r8.cfmethodgeneration.InstructionTypeMapper;
 import com.android.tools.r8.cfmethodgeneration.MethodGenerationBase;
 import com.android.tools.r8.desugar.desugaredlibrary.generation.DesugaredLibraryBridge.NavType;
@@ -92,6 +93,7 @@
   }
 
   public static void main(String[] args) throws Exception {
+    setUpSystemPropertiesForMain(TestDataSourceSet.TESTS_JAVA_8);
     new GenerateDesugaredLibraryBridge(null).generateMethodsAndWriteThemToFile();
   }
 }
diff --git a/src/test/java/com/android/tools/r8/desugar/records/GenerateRecordMethods.java b/src/test/java/com/android/tools/r8/desugar/records/GenerateRecordMethods.java
index 895aa97..ba1153a 100644
--- a/src/test/java/com/android/tools/r8/desugar/records/GenerateRecordMethods.java
+++ b/src/test/java/com/android/tools/r8/desugar/records/GenerateRecordMethods.java
@@ -8,6 +8,7 @@
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.TestParametersCollection;
 import com.android.tools.r8.TestRuntime.CfVm;
+import com.android.tools.r8.ToolHelper.TestDataSourceSet;
 import com.android.tools.r8.cfmethodgeneration.MethodGenerationBase;
 import com.android.tools.r8.graph.DexType;
 import com.android.tools.r8.utils.FileUtils;
@@ -63,6 +64,7 @@
   }
 
   public static void main(String[] args) throws Exception {
+    setUpSystemPropertiesForMain(TestDataSourceSet.TESTS_JAVA_8);
     new GenerateRecordMethods(null).generateMethodsAndWriteThemToFile();
   }
 }
diff --git a/src/test/java/com/android/tools/r8/enumunboxing/GenerateEnumUnboxingMethods.java b/src/test/java/com/android/tools/r8/enumunboxing/GenerateEnumUnboxingMethods.java
index 74bf88f..d6ea6e2 100644
--- a/src/test/java/com/android/tools/r8/enumunboxing/GenerateEnumUnboxingMethods.java
+++ b/src/test/java/com/android/tools/r8/enumunboxing/GenerateEnumUnboxingMethods.java
@@ -8,6 +8,7 @@
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.TestParametersCollection;
 import com.android.tools.r8.TestRuntime.CfVm;
+import com.android.tools.r8.ToolHelper.TestDataSourceSet;
 import com.android.tools.r8.cfmethodgeneration.MethodGenerationBase;
 import com.android.tools.r8.graph.DexType;
 import com.android.tools.r8.utils.FileUtils;
@@ -65,6 +66,7 @@
   }
 
   public static void main(String[] args) throws Exception {
+    setUpSystemPropertiesForMain(TestDataSourceSet.TESTS_JAVA_8);
     new GenerateEnumUnboxingMethods(null).generateMethodsAndWriteThemToFile();
   }
 }
diff --git a/src/test/java/com/android/tools/r8/ir/desugar/backports/GenerateBackportMethods.java b/src/test/java/com/android/tools/r8/ir/desugar/backports/GenerateBackportMethods.java
index d11c2f7..7cd9e28 100644
--- a/src/test/java/com/android/tools/r8/ir/desugar/backports/GenerateBackportMethods.java
+++ b/src/test/java/com/android/tools/r8/ir/desugar/backports/GenerateBackportMethods.java
@@ -9,6 +9,7 @@
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.TestParametersCollection;
 import com.android.tools.r8.TestRuntime.CfVm;
+import com.android.tools.r8.ToolHelper.TestDataSourceSet;
 import com.android.tools.r8.cf.code.CfInstruction;
 import com.android.tools.r8.cf.code.CfInvoke;
 import com.android.tools.r8.cfmethodgeneration.MethodGenerationBase;
@@ -169,6 +170,7 @@
   }
 
   public static void main(String[] args) throws Exception {
+    setUpSystemPropertiesForMain(TestDataSourceSet.TESTS_JAVA_8);
     new GenerateBackportMethods(null).generateMethodsAndWriteThemToFile();
   }
 }
diff --git a/src/test/java/com/android/tools/r8/ir/desugar/varhandle/GenerateVarHandleMethods.java b/src/test/java/com/android/tools/r8/ir/desugar/varhandle/GenerateVarHandleMethods.java
index e5434a0..330d280 100644
--- a/src/test/java/com/android/tools/r8/ir/desugar/varhandle/GenerateVarHandleMethods.java
+++ b/src/test/java/com/android/tools/r8/ir/desugar/varhandle/GenerateVarHandleMethods.java
@@ -9,6 +9,7 @@
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.TestParametersCollection;
 import com.android.tools.r8.TestRuntime.CfVm;
+import com.android.tools.r8.ToolHelper.TestDataSourceSet;
 import com.android.tools.r8.cfmethodgeneration.InstructionTypeMapper;
 import com.android.tools.r8.cfmethodgeneration.MethodGenerationBase;
 import com.android.tools.r8.graph.CfCode;
@@ -184,6 +185,7 @@
   }
 
   public static void main(String[] args) throws Exception {
+    setUpSystemPropertiesForMain(TestDataSourceSet.TESTS_JAVA_8);
     new GenerateVarHandleMethods(null).generateMethodsAndWriteThemToFile();
   }
 }
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/templates/GenerateCfUtilityMethodsForCodeOptimizations.java b/src/test/java/com/android/tools/r8/ir/optimize/templates/GenerateCfUtilityMethodsForCodeOptimizations.java
index 732952d..7136058 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/templates/GenerateCfUtilityMethodsForCodeOptimizations.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/templates/GenerateCfUtilityMethodsForCodeOptimizations.java
@@ -7,6 +7,7 @@
 
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.TestParametersCollection;
+import com.android.tools.r8.ToolHelper.TestDataSourceSet;
 import com.android.tools.r8.cfmethodgeneration.MethodGenerationBase;
 import com.android.tools.r8.graph.DexType;
 import com.android.tools.r8.utils.FileUtils;
@@ -58,6 +59,7 @@
   }
 
   public static void main(String[] args) throws Exception {
+    setUpSystemPropertiesForMain(TestDataSourceSet.TESTS_JAVA_8);
     new GenerateCfUtilityMethodsForCodeOptimizations(
             getTestParameters().withNoneRuntime().build().iterator().next())
         .generateMethodsAndWriteThemToFile();