Move VarHandleTest to java 9 package

Change-Id: I42f04668ebf23874fd407af6257dc5200c83ed0e
diff --git a/src/test/java/com/android/tools/r8/cf/methodhandles/VarHandleTest.java b/src/test/examplesJava9/varhandle/VarHandleTest.java
similarity index 84%
rename from src/test/java/com/android/tools/r8/cf/methodhandles/VarHandleTest.java
rename to src/test/examplesJava9/varhandle/VarHandleTest.java
index 6e9644c..be31a28 100644
--- a/src/test/java/com/android/tools/r8/cf/methodhandles/VarHandleTest.java
+++ b/src/test/examplesJava9/varhandle/VarHandleTest.java
@@ -2,7 +2,7 @@
 // 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.cf.methodhandles;
+package varhandle;
 
 import static com.android.tools.r8.DiagnosticsMatcher.diagnosticType;
 import static org.hamcrest.CoreMatchers.containsString;
@@ -15,11 +15,9 @@
 import com.android.tools.r8.TestRuntime.CfVm;
 import com.android.tools.r8.ToolHelper.DexVm.Version;
 import com.android.tools.r8.errors.UnsupportedInvokePolymorphicMethodHandleDiagnostic;
-import com.android.tools.r8.examples.JavaExampleClassProxy;
 import com.android.tools.r8.utils.AndroidApiLevel;
 import com.android.tools.r8.utils.StringUtils;
 import com.google.common.collect.ImmutableList;
-import java.nio.file.Path;
 import java.util.List;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -30,11 +28,6 @@
 @RunWith(Parameterized.class)
 public class VarHandleTest extends TestBase {
 
-  private static final String PKG = "varhandle";
-  private static final String EXAMPLE = "examplesJava9/" + PKG;
-  private final JavaExampleClassProxy MAIN =
-      new JavaExampleClassProxy(EXAMPLE, PKG + ".VarHandleTests");
-
   private static final String EXPECTED = StringUtils.lines("true", "false");
 
   private final TestParameters parameters;
@@ -71,16 +64,16 @@
         && parameters.getApiLevel().isGreaterThanOrEqualTo(AndroidApiLevel.T);
   }
 
-  public List<Path> getProgramInputs() {
-    return ImmutableList.of(JavaExampleClassProxy.examplesJar(EXAMPLE));
+  public List<Class<?>> getProgramInputs() {
+    return ImmutableList.of(VarHandleTest.class);
   }
 
   @Test
   public void testReference() throws Throwable {
     parameters.assumeJvmTestParameters();
     testForJvm(parameters)
-        .addProgramFiles(getProgramInputs())
-        .run(parameters.getRuntime(), MAIN.typeName())
+        .addProgramClasses(getProgramInputs())
+        .run(parameters.getRuntime(), VarHandleTest.class)
         .assertSuccessWithOutput(EXPECTED);
   }
 
@@ -91,7 +84,7 @@
         "TODO(b/204855476): The default VM throws unsupported. Ignore it and reconsider for 8.0.0",
         parameters.isDexRuntimeVersion(Version.DEFAULT));
     testForD8()
-        .addProgramFiles(getProgramInputs())
+        .addProgramClasses(getProgramInputs())
         .setMinApi(parameters)
         .compileWithExpectedDiagnostics(
             diagnostics -> {
@@ -104,7 +97,7 @@
                     .assertOnlyWarnings();
               }
             })
-        .run(parameters.getRuntime(), MAIN.typeName())
+        .run(parameters.getRuntime(), VarHandleTest.class)
         .applyIf(
             !hasMethodHandlesClass(),
             r ->
@@ -126,11 +119,11 @@
     // This just tests R8 on the targets where the program is fully supported.
     assumeTrue(hasInvokePolymorphicCompileSupport() && hasFindStaticVarHandleMethod());
     testForR8(parameters.getBackend())
-        .addProgramFiles(getProgramInputs())
+        .addProgramClasses(getProgramInputs())
         .setMinApi(parameters)
-        .addKeepClassAndMembersRules(MAIN.typeName())
+        .addKeepClassAndMembersRules(VarHandleTest.class)
         .applyIf(!hasVarHandleInLibrary(), b -> b.addDontWarn("java.lang.invoke.VarHandle"))
-        .run(parameters.getRuntime(), MAIN.typeName())
+        .run(parameters.getRuntime(), VarHandleTest.class)
         .assertSuccessWithOutput(EXPECTED);
   }
 }
diff --git a/src/test/java/com/android/tools/r8/examples/JavaExampleClassProxy.java b/src/test/java/com/android/tools/r8/examples/JavaExampleClassProxy.java
deleted file mode 100644
index 6eb4ae4..0000000
--- a/src/test/java/com/android/tools/r8/examples/JavaExampleClassProxy.java
+++ /dev/null
@@ -1,59 +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 com.android.tools.r8.examples;
-
-import com.android.tools.r8.ToolHelper;
-import com.android.tools.r8.references.ClassReference;
-import com.android.tools.r8.references.Reference;
-import com.android.tools.r8.utils.DescriptorUtils;
-import com.android.tools.r8.utils.StringUtils;
-import com.google.common.io.ByteStreams;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.zip.ZipFile;
-
-public class JavaExampleClassProxy {
-
-  private final String examplesFolder;
-  private final String binaryName;
-
-  public JavaExampleClassProxy(String examples, String binaryName) {
-    this.examplesFolder = examples;
-    this.binaryName = binaryName;
-  }
-
-  public static Path examplesJar(String examplesFolder) {
-    return Paths.get(ToolHelper.BUILD_DIR, "test", examplesFolder + ".jar");
-  }
-
-  public byte[] bytes() {
-    Path examplePath = examplesJar(examplesFolder);
-    if (!Files.exists(examplePath)) {
-      throw new RuntimeException(
-          "Could not find path "
-              + examplePath
-              + ". Build "
-              + examplesFolder
-              + " by running tools/gradle.py build"
-              + StringUtils.capitalize(examplesFolder));
-    }
-    try (ZipFile zipFile = new ZipFile(examplePath.toFile())) {
-      return ByteStreams.toByteArray(
-          zipFile.getInputStream(zipFile.getEntry(binaryName + ".class")));
-    } catch (IOException e) {
-      throw new RuntimeException("Could not read zip-entry from " + examplePath.toString(), e);
-    }
-  }
-
-  public String typeName() {
-    return DescriptorUtils.getJavaTypeFromBinaryName(binaryName);
-  }
-
-  public ClassReference getClassReference() {
-    return Reference.classFromBinaryName(binaryName);
-  }
-}