Reduce Stream test load

- D8_L8DEBUG config is mostly meaningless (we test already
  D8_L8SHRINK for D8 dex and D8CF2CF_L8DEBUG for L8 debug
- Split in 3 instead of 2 leading to 60/60/90 sec runs from
  70/140.

Bug: b/270029504
Change-Id: I1693ca577535c9cd133b55bcc6af0526766de371
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11Stream0Tests.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11Stream0Tests.java
new file mode 100644
index 0000000..3cb7c8e
--- /dev/null
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11Stream0Tests.java
@@ -0,0 +1,29 @@
+// 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.desugar.desugaredlibrary.jdktests;
+
+import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.desugar.desugaredlibrary.test.CompilationSpecification;
+import com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+@RunWith(Parameterized.class)
+public class Jdk11Stream0Tests extends Jdk11StreamAbstractTests {
+
+  private static final int INDEX = 0;
+
+  public Jdk11Stream0Tests(
+      TestParameters parameters,
+      LibraryDesugaringSpecification libraryDesugaringSpecification,
+      CompilationSpecification compilationSpecification) {
+    super(parameters, libraryDesugaringSpecification, compilationSpecification);
+  }
+
+  @Override
+  int getIndex() {
+    return INDEX;
+  }
+}
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11Stream1Tests.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11Stream1Tests.java
index c11f498..a6441f9 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11Stream1Tests.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11Stream1Tests.java
@@ -7,13 +7,14 @@
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.desugar.desugaredlibrary.test.CompilationSpecification;
 import com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification;
-import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 
 @RunWith(Parameterized.class)
 public class Jdk11Stream1Tests extends Jdk11StreamAbstractTests {
 
+  private static final int INDEX = 1;
+
   public Jdk11Stream1Tests(
       TestParameters parameters,
       LibraryDesugaringSpecification libraryDesugaringSpecification,
@@ -21,8 +22,8 @@
     super(parameters, libraryDesugaringSpecification, compilationSpecification);
   }
 
-  @Test
-  public void testStream() throws Throwable {
-    testStream(firstHalf(getSuccessfulTests()), firstHalf(getFailingTests()));
+  @Override
+  int getIndex() {
+    return INDEX;
   }
 }
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11Stream2Tests.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11Stream2Tests.java
index 607e0ad..56448aa 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11Stream2Tests.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11Stream2Tests.java
@@ -7,13 +7,14 @@
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.desugar.desugaredlibrary.test.CompilationSpecification;
 import com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification;
-import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 
 @RunWith(Parameterized.class)
 public class Jdk11Stream2Tests extends Jdk11StreamAbstractTests {
 
+  private static final int INDEX = 2;
+
   public Jdk11Stream2Tests(
       TestParameters parameters,
       LibraryDesugaringSpecification libraryDesugaringSpecification,
@@ -21,8 +22,8 @@
     super(parameters, libraryDesugaringSpecification, compilationSpecification);
   }
 
-  @Test
-  public void testStream() throws Throwable {
-    testStream(secondHalf(getSuccessfulTests()), secondHalf(getFailingTests()));
+  @Override
+  int getIndex() {
+    return INDEX;
   }
 }
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11StreamAbstractTests.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11StreamAbstractTests.java
index ad2644b..b977265 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11StreamAbstractTests.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11StreamAbstractTests.java
@@ -12,7 +12,6 @@
 import static com.android.tools.r8.desugar.desugaredlibrary.jdktests.Jdk11TestLibraryDesugaringSpecification.JDK11_PATH_JAVA_BASE_EXT;
 import static com.android.tools.r8.desugar.desugaredlibrary.jdktests.Jdk11TestLibraryDesugaringSpecification.JDK8_JAVA_BASE_EXT;
 import static com.android.tools.r8.desugar.desugaredlibrary.test.CompilationSpecification.D8CF2CF_L8DEBUG;
-import static com.android.tools.r8.desugar.desugaredlibrary.test.CompilationSpecification.D8_L8DEBUG;
 import static com.android.tools.r8.desugar.desugaredlibrary.test.CompilationSpecification.D8_L8SHRINK;
 import static com.android.tools.r8.utils.FileUtils.CLASS_EXTENSION;
 import static com.android.tools.r8.utils.FileUtils.JAVA_EXTENSION;
@@ -43,6 +42,7 @@
 import java.util.stream.Collectors;
 import org.junit.Assume;
 import org.junit.BeforeClass;
+import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 import org.junit.runners.Parameterized.Parameters;
@@ -50,6 +50,7 @@
 @RunWith(Parameterized.class)
 public abstract class Jdk11StreamAbstractTests extends DesugaredLibraryTestBase {
 
+  private static final int SPLIT = 3;
   final TestParameters parameters;
   final LibraryDesugaringSpecification libraryDesugaringSpecification;
   final CompilationSpecification compilationSpecification;
@@ -73,7 +74,7 @@
             .withApiLevel(AndroidApiLevel.N)
             .build(),
         specs,
-        ImmutableList.of(D8_L8DEBUG, D8_L8SHRINK, D8CF2CF_L8DEBUG));
+        ImmutableList.of(D8_L8SHRINK, D8CF2CF_L8DEBUG));
   }
 
   public Jdk11StreamAbstractTests(
@@ -263,22 +264,20 @@
     assert JDK_11_STREAM_TEST_COMPILED_FILES.length > 0;
   }
 
-  Map<String, String> firstHalf(Map<String, String> input) {
-    return half(input, true);
+  Map<String, String> split(Map<String, String> input, int index) {
+    return split(input, index, SPLIT);
   }
 
-  Map<String, String> secondHalf(Map<String, String> input) {
-    return half(input, false);
-  }
-
-  private Map<String, String> half(Map<String, String> input, boolean first) {
+  private Map<String, String> split(Map<String, String> input, int index, int split) {
+    assert index >= 0 && index < split;
     ArrayList<String> keys = new ArrayList<>(input.keySet());
     keys.sort(Comparator.naturalOrder());
     int length = keys.size();
-    int middle = length / 2 + length % 2;
-    List<String> half = first ? keys.subList(0, middle) : keys.subList(middle, length);
-    HashMap<String, String> newMap = new HashMap<>();
-    for (String key : half) {
+    int start = index * length / split + (index == 0 ? 0 : 1);
+    int last = (index + 1) * length / split;
+    List<String> splitList = keys.subList(start, last);
+    Map<String, String> newMap = new HashMap<>();
+    for (String key : splitList) {
       newMap.put(key, input.get(key));
     }
     return newMap;
@@ -360,4 +359,11 @@
       }
     }
   }
+
+  @Test
+  public void testStream() throws Throwable {
+    testStream(split(getSuccessfulTests(), getIndex()), split(getFailingTests(), getIndex()));
+  }
+
+  abstract int getIndex();
 }