AssertionsConfigurationTest: Split DEX tests into four test classes

With all the changes to AssertionsConfigurationTest running

  tools/test.py --no-r8lib 'com.android.tools.r8.rewrite.assertions.AssertionConfigurationKotlin*'

goes from ~16 min to ~4 min (locally) due to the improved parallelization. The actual tests running are still the same.

Fixes: b/270028969
Change-Id: Ia115afe599a542c0662289ee25e448c657fe81db
diff --git a/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionConfigurationKotlinDexTest.java b/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionConfigurationKotlinDexTestBase.java
similarity index 94%
rename from src/test/java/com/android/tools/r8/rewrite/assertions/AssertionConfigurationKotlinDexTest.java
rename to src/test/java/com/android/tools/r8/rewrite/assertions/AssertionConfigurationKotlinDexTestBase.java
index e5ab25b..008e623 100644
--- a/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionConfigurationKotlinDexTest.java
+++ b/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionConfigurationKotlinDexTestBase.java
@@ -7,25 +7,21 @@
 import com.android.tools.r8.AssertionsConfiguration;
 import com.android.tools.r8.KotlinTestParameters;
 import com.android.tools.r8.TestParameters;
-import com.android.tools.r8.utils.BooleanUtils;
 import java.util.Collection;
 import org.junit.Test;
-import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 
-@RunWith(Parameterized.class)
-public class AssertionConfigurationKotlinDexTest extends AssertionConfigurationKotlinTestBase {
+public abstract class AssertionConfigurationKotlinDexTestBase
+    extends AssertionConfigurationKotlinTestBase {
 
-  @Parameterized.Parameters(name = "{0}, {1}, kotlin-stdlib as library: {2}, -Xassertions=jvm: {3}")
+  @Parameterized.Parameters(name = "{0}, {1}")
   public static Collection<Object[]> data() {
     return buildParameters(
         getTestParameters().withDexRuntimesAndAllApiLevels().build(),
-        getKotlinTestParameters().withAllCompilersAndTargetVersions().build(),
-        BooleanUtils.values(),
-        BooleanUtils.values());
+        getKotlinTestParameters().withAllCompilersAndTargetVersions().build());
   }
 
-  public AssertionConfigurationKotlinDexTest(
+  public AssertionConfigurationKotlinDexTestBase(
       TestParameters parameters,
       KotlinTestParameters kotlinParameters,
       boolean kotlinStdlibAsClasspath,
diff --git a/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionConfigurationKotlinDexWithJvmAssertionsStdlibOnClasspathTest.java b/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionConfigurationKotlinDexWithJvmAssertionsStdlibOnClasspathTest.java
new file mode 100644
index 0000000..99f7447
--- /dev/null
+++ b/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionConfigurationKotlinDexWithJvmAssertionsStdlibOnClasspathTest.java
@@ -0,0 +1,20 @@
+// Copyright (c) 2023, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+package com.android.tools.r8.rewrite.assertions;
+
+import com.android.tools.r8.KotlinTestParameters;
+import com.android.tools.r8.TestParameters;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+@RunWith(Parameterized.class)
+public class AssertionConfigurationKotlinDexWithJvmAssertionsStdlibOnClasspathTest
+    extends AssertionConfigurationKotlinDexTestBase {
+
+  public AssertionConfigurationKotlinDexWithJvmAssertionsStdlibOnClasspathTest(
+      TestParameters parameters, KotlinTestParameters kotlinParameters) {
+    super(parameters, kotlinParameters, true, true);
+  }
+}
diff --git a/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionConfigurationKotlinDexWithJvmAssertionsTest.java b/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionConfigurationKotlinDexWithJvmAssertionsTest.java
new file mode 100644
index 0000000..874be1a
--- /dev/null
+++ b/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionConfigurationKotlinDexWithJvmAssertionsTest.java
@@ -0,0 +1,20 @@
+// Copyright (c) 2023, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+package com.android.tools.r8.rewrite.assertions;
+
+import com.android.tools.r8.KotlinTestParameters;
+import com.android.tools.r8.TestParameters;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+@RunWith(Parameterized.class)
+public class AssertionConfigurationKotlinDexWithJvmAssertionsTest
+    extends AssertionConfigurationKotlinDexTestBase {
+
+  public AssertionConfigurationKotlinDexWithJvmAssertionsTest(
+      TestParameters parameters, KotlinTestParameters kotlinParameters) {
+    super(parameters, kotlinParameters, false, true);
+  }
+}
diff --git a/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionConfigurationKotlinDexWithKotlinAssertionsStdlibOnClasspathTest.java b/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionConfigurationKotlinDexWithKotlinAssertionsStdlibOnClasspathTest.java
new file mode 100644
index 0000000..989b5c0
--- /dev/null
+++ b/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionConfigurationKotlinDexWithKotlinAssertionsStdlibOnClasspathTest.java
@@ -0,0 +1,20 @@
+// Copyright (c) 2023, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+package com.android.tools.r8.rewrite.assertions;
+
+import com.android.tools.r8.KotlinTestParameters;
+import com.android.tools.r8.TestParameters;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+@RunWith(Parameterized.class)
+public class AssertionConfigurationKotlinDexWithKotlinAssertionsStdlibOnClasspathTest
+    extends AssertionConfigurationKotlinDexTestBase {
+
+  public AssertionConfigurationKotlinDexWithKotlinAssertionsStdlibOnClasspathTest(
+      TestParameters parameters, KotlinTestParameters kotlinParameters) {
+    super(parameters, kotlinParameters, true, false);
+  }
+}
diff --git a/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionConfigurationKotlinTestBase.java b/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionConfigurationKotlinTestBase.java
index 999ca31..cbfb646 100644
--- a/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionConfigurationKotlinTestBase.java
+++ b/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionConfigurationKotlinTestBase.java
@@ -27,9 +27,8 @@
 import java.io.IOException;
 import java.nio.file.Path;
 import java.util.List;
-import org.objectweb.asm.Opcodes;
 
-public class AssertionConfigurationKotlinTestBase extends KotlinTestBase implements Opcodes {
+public class AssertionConfigurationKotlinTestBase extends KotlinTestBase {
 
   protected static final Package pkg = AssertionConfigurationKotlinTestBase.class.getPackage();
   protected static final String kotlintestclasesPackage = pkg.getName() + ".kotlintestclasses";
diff --git a/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionConfigurationKotlinWithKotlinAssertionsDexTest.java b/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionConfigurationKotlinWithKotlinAssertionsDexTest.java
new file mode 100644
index 0000000..fba70cc
--- /dev/null
+++ b/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionConfigurationKotlinWithKotlinAssertionsDexTest.java
@@ -0,0 +1,20 @@
+// Copyright (c) 2023, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+package com.android.tools.r8.rewrite.assertions;
+
+import com.android.tools.r8.KotlinTestParameters;
+import com.android.tools.r8.TestParameters;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+@RunWith(Parameterized.class)
+public class AssertionConfigurationKotlinWithKotlinAssertionsDexTest
+    extends AssertionConfigurationKotlinDexTestBase {
+
+  public AssertionConfigurationKotlinWithKotlinAssertionsDexTest(
+      TestParameters parameters, KotlinTestParameters kotlinParameters) {
+    super(parameters, kotlinParameters, false, false);
+  }
+}