Move EmptyRecordTest to java17 package

Bug: b/363926134
Change-Id: I0769d4ac9f200779b6caaca08cd1ff92d76043e6
diff --git a/src/test/examplesJava17/records/EmptyRecord.java b/src/test/examplesJava17/records/EmptyRecord.java
deleted file mode 100644
index 5d16e44..0000000
--- a/src/test/examplesJava17/records/EmptyRecord.java
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (c) 2020, 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 records;
-
-public class EmptyRecord {
-
-  record Empty() {}
-
-  public static void main(String[] args) {
-    System.out.println(new Empty());
-  }
-}
diff --git a/src/test/java/com/android/tools/r8/desugar/records/EmptyRecordTest.java b/src/test/examplesJava17/records/EmptyRecordTest.java
similarity index 78%
rename from src/test/java/com/android/tools/r8/desugar/records/EmptyRecordTest.java
rename to src/test/examplesJava17/records/EmptyRecordTest.java
index 9c88c93..963a514 100644
--- a/src/test/java/com/android/tools/r8/desugar/records/EmptyRecordTest.java
+++ b/src/test/examplesJava17/records/EmptyRecordTest.java
@@ -2,10 +2,11 @@
 // 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.records;
+package records;
 
 import static org.junit.Assume.assumeFalse;
 
+import com.android.tools.r8.JdkClassFileProvider;
 import com.android.tools.r8.TestBase;
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.TestRuntime.CfVm;
@@ -21,13 +22,10 @@
 @RunWith(Parameterized.class)
 public class EmptyRecordTest extends TestBase {
 
-  private static final String RECORD_NAME = "EmptyRecord";
-  private static final byte[][] PROGRAM_DATA = RecordTestUtils.getProgramData(RECORD_NAME);
-  private static final String MAIN_TYPE = RecordTestUtils.getMainType(RECORD_NAME);
   private static final String EXPECTED_RESULT_D8 = StringUtils.lines("Empty[]");
   private static final String EXPECTED_RESULT_R8_MINIFICATION = StringUtils.lines("a[]");
   private static final String EXPECTED_RESULT_R8_NO_MINIFICATION =
-      StringUtils.lines("EmptyRecord$Empty[]");
+      StringUtils.lines("EmptyRecordTest$Empty[]");
 
   @Parameter(0)
   public boolean enableMinification;
@@ -55,8 +53,8 @@
     assumeFalse("Only applicable for R8", enableMinification);
     parameters.assumeJvmTestParameters();
     testForJvm(parameters)
-        .addProgramClassFileData(PROGRAM_DATA)
-        .run(parameters.getRuntime(), MAIN_TYPE)
+        .addInnerClassesAndStrippedOuter(getClass())
+        .run(parameters.getRuntime(), TestClass.class)
         .assertSuccessWithOutput(EXPECTED_RESULT_D8);
   }
 
@@ -64,10 +62,10 @@
   public void testD8() throws Exception {
     assumeFalse("Only applicable for R8", enableMinification || enableRepackaging);
     testForD8(parameters.getBackend())
-        .addProgramClassFileData(PROGRAM_DATA)
+        .addInnerClassesAndStrippedOuter(getClass())
         .setMinApi(parameters)
         .compile()
-        .run(parameters.getRuntime(), MAIN_TYPE)
+        .run(parameters.getRuntime(), TestClass.class)
         .assertSuccessWithOutput(EXPECTED_RESULT_D8);
   }
 
@@ -76,11 +74,11 @@
     parameters.assumeDexRuntime();
     parameters.assumeR8TestParameters();
     testForR8(parameters.getBackend())
-        .addProgramClassFileData(PROGRAM_DATA)
-        .addKeepMainRule(MAIN_TYPE)
+        .addInnerClassesAndStrippedOuter(getClass())
+        .addKeepMainRule(TestClass.class)
         .applyIf(
             parameters.isCfRuntime(),
-            testBuilder -> testBuilder.addLibraryFiles(RecordTestUtils.getJdk15LibraryFiles(temp)))
+            testBuilder -> testBuilder.addLibraryProvider(JdkClassFileProvider.fromSystemJdk()))
         .addDontObfuscateUnless(enableMinification)
         .applyIf(enableRepackaging, b -> b.addKeepRules("-repackageclasses p"))
         .setMinApi(parameters)
@@ -88,10 +86,19 @@
         .applyIf(
             parameters.isCfRuntime(),
             compileResult -> compileResult.inspect(RecordTestUtils::assertRecordsAreRecords))
-        .run(parameters.getRuntime(), MAIN_TYPE)
+        .run(parameters.getRuntime(), TestClass.class)
         .assertSuccessWithOutput(
             enableMinification
                 ? EXPECTED_RESULT_R8_MINIFICATION
                 : EXPECTED_RESULT_R8_NO_MINIFICATION);
   }
+
+  record Empty() {}
+
+  public class TestClass {
+
+    public static void main(String[] args) {
+      System.out.println(new Empty());
+    }
+  }
 }
diff --git a/src/test/examplesJava17/records/RecordTestUtils.java b/src/test/examplesJava17/records/RecordTestUtils.java
new file mode 100644
index 0000000..6c501c0
--- /dev/null
+++ b/src/test/examplesJava17/records/RecordTestUtils.java
@@ -0,0 +1,32 @@
+// Copyright (c) 2021, 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 records;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.utils.AndroidApiLevel;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.FoundClassSubject;
+
+public class RecordTestUtils {
+
+  public static void assertRecordsAreRecords(CodeInspector inspector) {
+    for (FoundClassSubject clazz : inspector.allClasses()) {
+      if (clazz.getDexProgramClass().superType.toString().equals("java.lang.Record")) {
+        assertTrue(clazz.getDexProgramClass().isRecord());
+      }
+    }
+  }
+
+  public static void assertNoJavaLangRecord(CodeInspector inspector, TestParameters parameters) {
+    if (parameters.getApiLevel().isGreaterThanOrEqualTo(AndroidApiLevel.V)) {
+      assertFalse(inspector.clazz("java.lang.RecordTag").isPresent());
+    } else {
+      assertFalse(inspector.clazz("java.lang.Record").isPresent());
+    }
+  }
+}