Move Lambda17 test to jdk17 package

Change-Id: I66e960d1e50b9c2443b3fcfa34d9fbc981dc8358
diff --git a/src/test/examplesJava17/lambda/Lambda.java b/src/test/examplesJava17/lambda/Lambda.java
deleted file mode 100644
index d0c1035..0000000
--- a/src/test/examplesJava17/lambda/Lambda.java
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright (c) 2022, 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 lambda;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class Lambda {
-
-  interface StringPredicate {
-
-    boolean test(String t);
-
-    default StringPredicate or(StringPredicate other) {
-      return (t) -> test(t) || other.test(t);
-    }
-  }
-
-  public static void main(String[] args) {
-    ArrayList<String> strings = new ArrayList<>();
-    strings.add("abc");
-    strings.add("abb");
-    strings.add("bbc");
-    strings.add("aac");
-    strings.add("acc");
-    StringPredicate aaStart = Lambda::aaStart;
-    StringPredicate bbNot = Lambda::bbNot;
-    StringPredicate full = aaStart.or(bbNot);
-    for (String string : ((List<String>) strings.clone())) {
-      if (full.test(string)) {
-        strings.remove(string);
-      }
-    }
-    System.out.println(strings);
-  }
-
-  private static boolean aaStart(String str) {
-    return str.startsWith("aa");
-  }
-
-  private static boolean bbNot(String str) {
-    return !str.contains("bb");
-  }
-}
diff --git a/src/test/java/com/android/tools/r8/desugar/lambdas/LambdaJava17Test.java b/src/test/examplesJava17/lambda/LambdaJava17Test.java
similarity index 60%
rename from src/test/java/com/android/tools/r8/desugar/lambdas/LambdaJava17Test.java
rename to src/test/examplesJava17/lambda/LambdaJava17Test.java
index e9c6102..6da8ada 100644
--- a/src/test/java/com/android/tools/r8/desugar/lambdas/LambdaJava17Test.java
+++ b/src/test/examplesJava17/lambda/LambdaJava17Test.java
@@ -2,19 +2,17 @@
 // 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.lambdas;
+package lambda;
 
 import static com.android.tools.r8.utils.AndroidApiLevel.B;
-import static com.android.tools.r8.utils.FileUtils.JAR_EXTENSION;
 
 import com.android.tools.r8.TestBase;
 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;
 import com.android.tools.r8.utils.AndroidApiLevel;
-import java.nio.file.Path;
-import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.List;
 import org.junit.Assume;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -28,9 +26,6 @@
     this.parameters = parameters;
   }
 
-  private static final Path JDK17_JAR =
-      Paths.get(ToolHelper.TESTS_BUILD_DIR, "examplesJava17").resolve("lambda" + JAR_EXTENSION);
-  private static final String MAIN = "lambda.Lambda";
   private static final String EXPECTED_RESULT = "[abb, bbc]";
 
   private final TestParameters parameters;
@@ -49,16 +44,16 @@
   public void testReference() throws Exception {
     parameters.assumeJvmTestParameters();
     testForJvm(parameters)
-        .addProgramFiles(JDK17_JAR)
-        .run(parameters.getRuntime(), MAIN)
+        .addInnerClassesAndStrippedOuter(getClass())
+        .run(parameters.getRuntime(), Lambda.class)
         .assertSuccessWithOutputLines(EXPECTED_RESULT);
   }
 
   @Test
   public void testJavaD8() throws Exception {
     testForDesugaring(parameters)
-        .addProgramFiles(JDK17_JAR)
-        .run(parameters.getRuntime(), MAIN)
+        .addInnerClassesAndStrippedOuter(getClass())
+        .run(parameters.getRuntime(), Lambda.class)
         .assertSuccessWithOutputLines(EXPECTED_RESULT);
   }
 
@@ -66,14 +61,52 @@
   public void testR8() throws Exception {
     Assume.assumeTrue(parameters.isDexRuntime() || parameters.getApiLevel().equals(B));
     testForR8(parameters.getBackend())
-        .addProgramFiles(JDK17_JAR)
+        .addInnerClassesAndStrippedOuter(getClass())
         .applyIf(
             parameters.isCfRuntime() && !parameters.getApiLevel().isEqualTo(AndroidApiLevel.B),
             // Alternatively we need to pass Jdk17 as library.
             b -> b.addKeepRules("-dontwarn java.lang.invoke.StringConcatFactory"))
         .setMinApi(parameters)
-        .addKeepMainRule(MAIN)
-        .run(parameters.getRuntime(), MAIN)
+        .addKeepMainRule(Lambda.class)
+        .run(parameters.getRuntime(), Lambda.class)
         .assertSuccessWithOutputLines(EXPECTED_RESULT);
   }
+
+  public class Lambda {
+
+    interface StringPredicate {
+
+      boolean test(String t);
+
+      default StringPredicate or(StringPredicate other) {
+        return (t) -> test(t) || other.test(t);
+      }
+    }
+
+    public static void main(String[] args) {
+      ArrayList<String> strings = new ArrayList<>();
+      strings.add("abc");
+      strings.add("abb");
+      strings.add("bbc");
+      strings.add("aac");
+      strings.add("acc");
+      StringPredicate aaStart = Lambda::aaStart;
+      StringPredicate bbNot = Lambda::bbNot;
+      StringPredicate full = aaStart.or(bbNot);
+      for (String string : ((List<String>) strings.clone())) {
+        if (full.test(string)) {
+          strings.remove(string);
+        }
+      }
+      System.out.println(strings);
+    }
+
+    private static boolean aaStart(String str) {
+      return str.startsWith("aa");
+    }
+
+    private static boolean bbNot(String str) {
+      return !str.contains("bb");
+    }
+  }
 }