Reapply "Move package nesthostexample in module tests_java_11"

This reverts commit e317ebcda1ac1d379beff3b571273069c2b00b07.

Bug: b/337801526
Change-Id: I1d9fab72fe31252dc0f756fbf77b2be0879450ef
diff --git a/src/test/examplesJava11/nesthostexample/BasicNestHostClassMerging.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/BasicNestHostClassMerging.java
similarity index 94%
rename from src/test/examplesJava11/nesthostexample/BasicNestHostClassMerging.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/BasicNestHostClassMerging.java
index 184c201..f2de820 100644
--- a/src/test/examplesJava11/nesthostexample/BasicNestHostClassMerging.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/BasicNestHostClassMerging.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 nesthostexample;
+package com.android.tools.r8.jdk11.desugar.nest;
 
 import com.android.tools.r8.NeverInline;
 
diff --git a/src/test/examplesJava11/nesthostexample/BasicNestHostTreePruning.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/BasicNestHostTreePruning.java
similarity index 93%
rename from src/test/examplesJava11/nesthostexample/BasicNestHostTreePruning.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/BasicNestHostTreePruning.java
index 484c81a..6928d73 100644
--- a/src/test/examplesJava11/nesthostexample/BasicNestHostTreePruning.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/BasicNestHostTreePruning.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 nesthostexample;
+package com.android.tools.r8.jdk11.desugar.nest;
 
 import com.android.tools.r8.NeverInline;
 
diff --git a/src/test/examplesJava11/nesthostexample/BasicNestHostWithAnonymousInnerClass.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/BasicNestHostWithAnonymousInnerClass.java
similarity index 96%
rename from src/test/examplesJava11/nesthostexample/BasicNestHostWithAnonymousInnerClass.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/BasicNestHostWithAnonymousInnerClass.java
index 93ad558..cd9a474 100644
--- a/src/test/examplesJava11/nesthostexample/BasicNestHostWithAnonymousInnerClass.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/BasicNestHostWithAnonymousInnerClass.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 nesthostexample;
+package com.android.tools.r8.jdk11.desugar.nest;
 
 import java.util.List;
 
diff --git a/src/test/examplesJava11/nesthostexample/BasicNestHostWithInnerClassConstructors.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/BasicNestHostWithInnerClassConstructors.java
similarity index 97%
rename from src/test/examplesJava11/nesthostexample/BasicNestHostWithInnerClassConstructors.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/BasicNestHostWithInnerClassConstructors.java
index 80fe3fe..744599b 100644
--- a/src/test/examplesJava11/nesthostexample/BasicNestHostWithInnerClassConstructors.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/BasicNestHostWithInnerClassConstructors.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 nesthostexample;
+package com.android.tools.r8.jdk11.desugar.nest;
 
 import java.util.List;
 
diff --git a/src/test/examplesJava11/nesthostexample/BasicNestHostWithInnerClassFields.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/BasicNestHostWithInnerClassFields.java
similarity index 96%
rename from src/test/examplesJava11/nesthostexample/BasicNestHostWithInnerClassFields.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/BasicNestHostWithInnerClassFields.java
index 070d886..83d536a 100644
--- a/src/test/examplesJava11/nesthostexample/BasicNestHostWithInnerClassFields.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/BasicNestHostWithInnerClassFields.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 nesthostexample;
+package com.android.tools.r8.jdk11.desugar.nest;
 
 import java.util.List;
 
diff --git a/src/test/examplesJava11/nesthostexample/BasicNestHostWithInnerClassMethods.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/BasicNestHostWithInnerClassMethods.java
similarity index 96%
rename from src/test/examplesJava11/nesthostexample/BasicNestHostWithInnerClassMethods.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/BasicNestHostWithInnerClassMethods.java
index 2766914..c1b50c8 100644
--- a/src/test/examplesJava11/nesthostexample/BasicNestHostWithInnerClassMethods.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/BasicNestHostWithInnerClassMethods.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 nesthostexample;
+package com.android.tools.r8.jdk11.desugar.nest;
 
 import java.util.List;
 
diff --git a/src/test/examplesJava11/nesthostexample/FullNestOnProgramPathTest.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/FullNestOnProgramPathTest.java
similarity index 99%
rename from src/test/examplesJava11/nesthostexample/FullNestOnProgramPathTest.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/FullNestOnProgramPathTest.java
index 5bc8808..d7aaad1 100644
--- a/src/test/examplesJava11/nesthostexample/FullNestOnProgramPathTest.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/FullNestOnProgramPathTest.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 nesthostexample;
+package com.android.tools.r8.jdk11.desugar.nest;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
diff --git a/src/test/examplesJava11/nesthostexample/NestAttributesUpdateTest.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestAttributesUpdateTest.java
similarity index 89%
rename from src/test/examplesJava11/nesthostexample/NestAttributesUpdateTest.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestAttributesUpdateTest.java
index ecac6fb..15e6b6a 100644
--- a/src/test/examplesJava11/nesthostexample/NestAttributesUpdateTest.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestAttributesUpdateTest.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 nesthostexample;
+package com.android.tools.r8.jdk11.desugar.nest;
 
 import static junit.framework.TestCase.assertEquals;
 import static junit.framework.TestCase.assertFalse;
@@ -31,7 +31,6 @@
 
 @RunWith(Parameterized.class)
 public class NestAttributesUpdateTest extends TestBase {
-  private static final String PACKAGE_NAME = "nesthostexample.";
 
   private static final Class<?> MERGING_OUTER_CLASS = BasicNestHostClassMerging.class;
   private static final Class<?> PRUNING_OUTER_CLASS = BasicNestHostTreePruning.class;
@@ -133,7 +132,7 @@
             })
         .addProgramClassesAndInnerClasses(outerNestClass)
         .applyIf(parameters.isCfRuntime(), Jdk9TestUtils.addJdk9LibraryFiles(temp))
-        .addKeepPackageNamesRule("nesthostexample")
+        .addKeepPackageNamesRule(getClass().getPackageName())
         .addInliningAnnotations()
         .apply(testBuilderConsumer)
         .compile()
@@ -154,19 +153,25 @@
         if (clazz.isNestHost()) {
           // All members are present with the clazz as host
           for (NestMemberClassAttribute attr : clazz.getNestMembersClassAttributes()) {
-            String memberName = attr.getNestMember().getName();
-            ClassSubject inner = inspector.clazz(PACKAGE_NAME + memberName);
+            ClassSubject inner = inspector.clazz(attr.getNestMember().toSourceString());
             assertNotNull(
-                "The nest member " + memberName + " of " + clazz.type.getName() + " is missing",
+                "The nest member "
+                    + attr.getNestMember().toSourceString()
+                    + " of "
+                    + clazz.type.toSourceString()
+                    + " is missing",
                 inner.getDexProgramClass());
             assertSame(inner.getDexProgramClass().getNestHost(), clazz.type);
           }
         } else {
           // Nest host is present and with the clazz as member
-          String hostName = clazz.getNestHost().getName();
-          ClassSubject host = inspector.clazz(PACKAGE_NAME + hostName);
+          ClassSubject host = inspector.clazz(clazz.getNestHost().toSourceString());
           assertNotNull(
-              "The nest host " + hostName + " of " + clazz.type.getName() + " is missing",
+              "The nest host "
+                  + clazz.getNestHost().toSourceString()
+                  + " of "
+                  + clazz.type.toSourceString()
+                  + " is missing",
               host.getDexProgramClass());
           assertTrue(
               host.getDexProgramClass().getNestMembersClassAttributes().stream()
diff --git a/src/test/examplesJava11/nesthostexample/NestClassMergingTest.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestClassMergingTest.java
similarity index 98%
rename from src/test/examplesJava11/nesthostexample/NestClassMergingTest.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestClassMergingTest.java
index 273b7ec..e1af3fb 100644
--- a/src/test/examplesJava11/nesthostexample/NestClassMergingTest.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestClassMergingTest.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 nesthostexample;
+package com.android.tools.r8.jdk11.desugar.nest;
 
 import com.android.tools.r8.Jdk9TestUtils;
 import com.android.tools.r8.R8TestCompileResult;
diff --git a/src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestCompilationExceptionTest.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestCompilationExceptionTest.java
similarity index 77%
rename from src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestCompilationExceptionTest.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestCompilationExceptionTest.java
index ec66458..26b7a21 100644
--- a/src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestCompilationExceptionTest.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestCompilationExceptionTest.java
@@ -2,15 +2,9 @@
 // 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.nestaccesscontrol;
+package com.android.tools.r8.jdk11.desugar.nest;
 
 import static com.android.tools.r8.DiagnosticsMatcher.diagnosticType;
-import static com.android.tools.r8.desugar.nestaccesscontrol.NestAccessControlTestUtils.CLASSES_PATH;
-import static com.android.tools.r8.desugar.nestaccesscontrol.NestAccessControlTestUtils.CLASS_NAMES;
-import static com.android.tools.r8.utils.FileUtils.CLASS_EXTENSION;
-import static java.util.stream.Collectors.toList;
-import static org.hamcrest.core.StringContains.containsString;
-import static org.hamcrest.core.StringEndsWith.endsWith;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
@@ -29,9 +23,6 @@
 import com.android.tools.r8.errors.InterfaceDesugarMissingTypeDiagnostic;
 import com.android.tools.r8.errors.MissingNestHostNestDesugarDiagnostic;
 import com.android.tools.r8.references.Reference;
-import java.nio.file.Path;
-import java.util.List;
-import org.hamcrest.Matcher;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -77,27 +68,20 @@
     testIncompleteNestError(false);
   }
 
-  private TestCompilerBuilder<?, ?, ?, ?, ?> compileOnlyClassesMatching(
-      Matcher<String> matcher,
+  private TestCompilerBuilder<?, ?, ?, ?, ?> configureTestBuilder(
+      Class<?> clazz,
       boolean d8,
       boolean allowDiagnosticWarningMessages,
       boolean ignoreMissingClasses) {
-    List<Path> matchingClasses =
-        CLASS_NAMES.stream()
-            .filter(matcher::matches)
-            .map(name -> CLASSES_PATH.resolve(name + CLASS_EXTENSION))
-            .collect(toList());
     if (d8) {
-      return testForD8(parameters.getBackend())
-          .setMinApi(parameters)
-          .addProgramFiles(matchingClasses);
+      return testForD8(parameters.getBackend()).setMinApi(parameters).addProgramClasses(clazz);
     } else {
       return testForR8(parameters.getBackend())
           .addDontShrink()
           .addDontObfuscate()
           .addKeepAllAttributes()
           .setMinApi(parameters)
-          .addProgramFiles(matchingClasses)
+          .addProgramClasses(clazz)
           .applyIf(parameters.isCfRuntime(), Jdk9TestUtils.addJdk9LibraryFiles(temp))
           .addIgnoreWarnings(ignoreMissingClasses)
           .allowDiagnosticWarningMessages(allowDiagnosticWarningMessages);
@@ -106,9 +90,8 @@
 
   private void testMissingNestHostError(boolean d8) {
     try {
-      Matcher<String> innerClassMatcher =
-          containsString("BasicNestHostWithInnerClassMethods$BasicNestedClass");
-      compileOnlyClassesMatching(innerClassMatcher, d8, false, false)
+      configureTestBuilder(
+              BasicNestHostWithInnerClassMethods.BasicNestedClass.class, d8, false, false)
           .compileWithExpectedDiagnostics(
               diagnostics -> {
                 if (d8) {
@@ -133,8 +116,8 @@
                               diagnostic
                                   .assertIsMissingDefinitionsDiagnostic()
                                   .assertIsMissingClass(
-                                      Reference.classFromTypeName(
-                                          "nesthostexample.BasicNestHostWithInnerClassMethods"))
+                                      Reference.classFromClass(
+                                          BasicNestHostWithInnerClassMethods.class))
                                   .assertNumberOfMissingClasses(1));
                 }
               });
@@ -147,8 +130,7 @@
 
   private void testIncompleteNestError(boolean d8) {
     try {
-      Matcher<String> innerClassMatcher = endsWith("BasicNestHostWithInnerClassMethods");
-      compileOnlyClassesMatching(innerClassMatcher, d8, false, false)
+      configureTestBuilder(BasicNestHostWithInnerClassMethods.class, d8, false, false)
           .compileWithExpectedDiagnostics(
               diagnostics -> {
                 if (d8) {
@@ -161,10 +143,11 @@
                   IncompleteNestNestDesugarDiagnosic diagnostic =
                       (IncompleteNestNestDesugarDiagnosic) diagnostics.getErrors().get(0);
                   assertEquals(
-                      "Compilation of classes nesthostexample.BasicNestHostWithInnerClassMethods "
-                          + "requires its nest mates "
-                          + "nesthostexample.BasicNestHostWithInnerClassMethods$BasicNestedClass "
-                          + "(unavailable) to be on program or class path.",
+                      "Compilation of classes "
+                          + BasicNestHostWithInnerClassMethods.class.getTypeName()
+                          + " requires its nest mates "
+                          + BasicNestHostWithInnerClassMethods.BasicNestedClass.class.getTypeName()
+                          + " (unavailable) to be on program or class path.",
                       diagnostic.getDiagnosticMessage());
                 } else {
                   diagnostics
@@ -187,10 +170,10 @@
   }
 
   private void testMissingNestHostWarning(boolean d8, boolean desugarWarning) throws Exception {
-    Matcher<String> innerClassMatcher =
-        containsString("BasicNestHostWithInnerClassMethods$BasicNestedClass");
     TestCompileResult<?, ?> compileResult =
-        compileOnlyClassesMatching(innerClassMatcher, d8, !d8, true).compile();
+        configureTestBuilder(
+                BasicNestHostWithInnerClassMethods.BasicNestedClass.class, d8, !d8, true)
+            .compile();
     assertTrue(compileResult.getDiagnosticMessages().getWarnings().size() >= 1);
     if (d8 && desugarWarning) {
       assertTrue(
@@ -216,17 +199,15 @@
                     diagnostic
                         .assertIsMissingDefinitionsDiagnostic()
                         .assertIsMissingClass(
-                            Reference.classFromTypeName(
-                                "nesthostexample.BasicNestHostWithInnerClassMethods"))
+                            Reference.classFromClass(BasicNestHostWithInnerClassMethods.class))
                         .assertNumberOfMissingClasses(1));
           });
     }
   }
 
   private void testIncompleteNestWarning(boolean d8, boolean desugarWarning) throws Exception {
-    Matcher<String> innerClassMatcher = endsWith("BasicNestHostWithInnerClassMethods");
     TestCompileResult<?, ?> compileResult =
-        compileOnlyClassesMatching(innerClassMatcher, d8, !d8, true).compile();
+        configureTestBuilder(BasicNestHostWithInnerClassMethods.class, d8, !d8, true).compile();
     assertTrue(compileResult.getDiagnosticMessages().getWarnings().size() >= 1);
     if (d8 && desugarWarning) {
       assertTrue(
@@ -252,8 +233,8 @@
                     diagnostic
                         .assertIsMissingDefinitionsDiagnostic()
                         .assertIsMissingClass(
-                            Reference.classFromTypeName(
-                                "nesthostexample.BasicNestHostWithInnerClassMethods$BasicNestedClass"))
+                            Reference.classFromClass(
+                                BasicNestHostWithInnerClassMethods.BasicNestedClass.class))
                         .assertNumberOfMissingClasses(1));
           });
     }
diff --git a/src/test/examplesJava11/nesthostexample/NestConstructorRemovedArgTest.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestConstructorRemovedArgTest.java
similarity index 93%
rename from src/test/examplesJava11/nesthostexample/NestConstructorRemovedArgTest.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestConstructorRemovedArgTest.java
index 216673a..36ad284 100644
--- a/src/test/examplesJava11/nesthostexample/NestConstructorRemovedArgTest.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestConstructorRemovedArgTest.java
@@ -2,9 +2,9 @@
 // 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 nesthostexample;
+package com.android.tools.r8.jdk11.desugar.nest;
 
-import static nesthostexample.BasicNestHostWithInnerClassConstructors.getExpectedResult;
+import static com.android.tools.r8.jdk11.desugar.nest.BasicNestHostWithInnerClassConstructors.getExpectedResult;
 
 import com.android.tools.r8.Jdk9TestUtils;
 import com.android.tools.r8.TestBase;
diff --git a/src/test/examplesJava11/nesthostexample/NestHostExample.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestHostExample.java
similarity index 99%
rename from src/test/examplesJava11/nesthostexample/NestHostExample.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestHostExample.java
index b892be3..2d908b1 100644
--- a/src/test/examplesJava11/nesthostexample/NestHostExample.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestHostExample.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 nesthostexample;
+package com.android.tools.r8.jdk11.desugar.nest;
 
 import java.util.List;
 
diff --git a/src/test/examplesJava11/nesthostexample/NestHostInlining.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestHostInlining.java
similarity index 94%
rename from src/test/examplesJava11/nesthostexample/NestHostInlining.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestHostInlining.java
index 4748927..1ca8c17 100644
--- a/src/test/examplesJava11/nesthostexample/NestHostInlining.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestHostInlining.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 nesthostexample;
+package com.android.tools.r8.jdk11.desugar.nest;
 
 public class NestHostInlining {
 
diff --git a/src/test/examplesJava11/nesthostexample/NestHostInliningSubclasses.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestHostInliningSubclasses.java
similarity index 94%
rename from src/test/examplesJava11/nesthostexample/NestHostInliningSubclasses.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestHostInliningSubclasses.java
index 4221307..b862e57 100644
--- a/src/test/examplesJava11/nesthostexample/NestHostInliningSubclasses.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestHostInliningSubclasses.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 nesthostexample;
+package com.android.tools.r8.jdk11.desugar.nest;
 
 import com.android.tools.r8.NeverInline;
 
diff --git a/src/test/examplesJava11/nesthostexample/NestInitArgumentContextClass.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestInitArgumentContextClass.java
similarity index 92%
rename from src/test/examplesJava11/nesthostexample/NestInitArgumentContextClass.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestInitArgumentContextClass.java
index cc8b8f3..73aaae8 100644
--- a/src/test/examplesJava11/nesthostexample/NestInitArgumentContextClass.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestInitArgumentContextClass.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 nesthostexample;
+package com.android.tools.r8.jdk11.desugar.nest;
 
 class NestInitArgumentContextClass {
   public class Inner1 {
diff --git a/src/test/examplesJava11/nesthostexample/NestInitArgumentContextTest.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestInitArgumentContextTest.java
similarity index 98%
rename from src/test/examplesJava11/nesthostexample/NestInitArgumentContextTest.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestInitArgumentContextTest.java
index 2de3600..8041082 100644
--- a/src/test/examplesJava11/nesthostexample/NestInitArgumentContextTest.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestInitArgumentContextTest.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 nesthostexample;
+package com.android.tools.r8.jdk11.desugar.nest;
 
 import static org.junit.Assert.assertEquals;
 
diff --git a/src/test/examplesJava11/nesthostexample/NestMemberPropagatedTest.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestMemberPropagatedTest.java
similarity index 97%
rename from src/test/examplesJava11/nesthostexample/NestMemberPropagatedTest.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestMemberPropagatedTest.java
index dc1a1d3..a6a00ec 100644
--- a/src/test/examplesJava11/nesthostexample/NestMemberPropagatedTest.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestMemberPropagatedTest.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 nesthostexample;
+package com.android.tools.r8.jdk11.desugar.nest;
 
 import static junit.framework.TestCase.assertEquals;
 
diff --git a/src/test/examplesJava11/nesthostexample/NestMethodInlinedTest.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestMethodInlinedTest.java
similarity index 98%
rename from src/test/examplesJava11/nesthostexample/NestMethodInlinedTest.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestMethodInlinedTest.java
index ef93446..791d1fc 100644
--- a/src/test/examplesJava11/nesthostexample/NestMethodInlinedTest.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestMethodInlinedTest.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 nesthostexample;
+package com.android.tools.r8.jdk11.desugar.nest;
 
 import static junit.framework.TestCase.assertEquals;
 import static junit.framework.TestCase.assertTrue;
diff --git a/src/test/examplesJava11/nesthostexample/NestOnProgramAndClasspathAndLibraryTest.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestOnProgramAndClasspathAndLibraryTest.java
similarity index 98%
rename from src/test/examplesJava11/nesthostexample/NestOnProgramAndClasspathAndLibraryTest.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestOnProgramAndClasspathAndLibraryTest.java
index 767b7df..e720d8b 100644
--- a/src/test/examplesJava11/nesthostexample/NestOnProgramAndClasspathAndLibraryTest.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestOnProgramAndClasspathAndLibraryTest.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 nesthostexample;
+package com.android.tools.r8.jdk11.desugar.nest;
 
 import static org.junit.Assert.assertThrows;
 
diff --git a/src/test/examplesJava11/nesthostexample/NestOnProgramOnClassPathTest.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestOnProgramOnClassPathTest.java
similarity index 98%
rename from src/test/examplesJava11/nesthostexample/NestOnProgramOnClassPathTest.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestOnProgramOnClassPathTest.java
index 974683a..1bb55a2 100644
--- a/src/test/examplesJava11/nesthostexample/NestOnProgramOnClassPathTest.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestOnProgramOnClassPathTest.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 nesthostexample;
+package com.android.tools.r8.jdk11.desugar.nest;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
diff --git a/src/test/examplesJava11/nesthostexample/NestPvtFieldPropagated.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestPvtFieldPropagated.java
similarity index 89%
rename from src/test/examplesJava11/nesthostexample/NestPvtFieldPropagated.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestPvtFieldPropagated.java
index 2cbdf25..05579e2 100644
--- a/src/test/examplesJava11/nesthostexample/NestPvtFieldPropagated.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestPvtFieldPropagated.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 nesthostexample;
+package com.android.tools.r8.jdk11.desugar.nest;
 
 public class NestPvtFieldPropagated {
 
diff --git a/src/test/examplesJava11/nesthostexample/NestPvtMethodCallInlined.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestPvtMethodCallInlined.java
similarity index 97%
rename from src/test/examplesJava11/nesthostexample/NestPvtMethodCallInlined.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestPvtMethodCallInlined.java
index 9670e69..6944b3c 100644
--- a/src/test/examplesJava11/nesthostexample/NestPvtMethodCallInlined.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/NestPvtMethodCallInlined.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 nesthostexample;
+package com.android.tools.r8.jdk11.desugar.nest;
 
 import com.android.tools.r8.AlwaysInline;
 import com.android.tools.r8.NeverInline;
diff --git a/src/test/examplesJava11/nesthostexample/OutsideInliningNoAccess.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/OutsideInliningNoAccess.java
similarity index 88%
rename from src/test/examplesJava11/nesthostexample/OutsideInliningNoAccess.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/OutsideInliningNoAccess.java
index 86da4b1..55cad20 100644
--- a/src/test/examplesJava11/nesthostexample/OutsideInliningNoAccess.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/OutsideInliningNoAccess.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 nesthostexample;
+package com.android.tools.r8.jdk11.desugar.nest;
 
 public class OutsideInliningNoAccess extends NestHostInlining.EmptyNoPrivAccess {
 
diff --git a/src/test/examplesJava11/nesthostexample/OutsideInliningWithAccess.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/OutsideInliningWithAccess.java
similarity index 90%
rename from src/test/examplesJava11/nesthostexample/OutsideInliningWithAccess.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/OutsideInliningWithAccess.java
index c81e437..f6b8dce 100644
--- a/src/test/examplesJava11/nesthostexample/OutsideInliningWithAccess.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/OutsideInliningWithAccess.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 nesthostexample;
+package com.android.tools.r8.jdk11.desugar.nest;
 
 public class OutsideInliningWithAccess extends NestHostInlining.EmptyWithPrivAccess {
 
diff --git a/src/test/examplesJava11/com/android/tools/r8/shaking/b169045091/examples/NestHost.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/b169045091/NestHost.java
similarity index 83%
rename from src/test/examplesJava11/com/android/tools/r8/shaking/b169045091/examples/NestHost.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/b169045091/NestHost.java
index 5c1453e..d49dcfe 100644
--- a/src/test/examplesJava11/com/android/tools/r8/shaking/b169045091/examples/NestHost.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/b169045091/NestHost.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.shaking.b169045091.examples;
+package com.android.tools.r8.jdk11.desugar.nest.b169045091;
 
 public class NestHost {
   /*private*/ int f;
diff --git a/src/test/examplesJava11/nesthostexample/b169045091/NestMemberAccessibilityTest.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/b169045091/NestMemberAccessibilityTest.java
similarity index 94%
rename from src/test/examplesJava11/nesthostexample/b169045091/NestMemberAccessibilityTest.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/b169045091/NestMemberAccessibilityTest.java
index 71e5b47..6f14432 100644
--- a/src/test/examplesJava11/nesthostexample/b169045091/NestMemberAccessibilityTest.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/b169045091/NestMemberAccessibilityTest.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 nesthostexample.b169045091;
+package com.android.tools.r8.jdk11.desugar.nest.b169045091;
 
 import static com.android.tools.r8.references.Reference.INT;
 import static org.junit.Assert.assertTrue;
@@ -15,11 +15,9 @@
 import com.android.tools.r8.graph.DexField;
 import com.android.tools.r8.graph.DexItemFactory;
 import com.android.tools.r8.graph.DexProgramClass;
+import com.android.tools.r8.jdk11.desugar.nest.b169045091.NestHost.NestMember;
 import com.android.tools.r8.references.Reference;
 import com.android.tools.r8.shaking.AppInfoWithLiveness;
-import com.android.tools.r8.shaking.b169045091.examples.NestHost;
-import com.android.tools.r8.shaking.b169045091.examples.NestHost.NestMember;
-import com.android.tools.r8.shaking.b169045091.examples.NonNestMember;
 import com.android.tools.r8.utils.AndroidApp;
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/src/test/examplesJava11/com/android/tools/r8/shaking/b169045091/examples/NonNestMember.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/b169045091/NonNestMember.java
similarity index 81%
rename from src/test/examplesJava11/com/android/tools/r8/shaking/b169045091/examples/NonNestMember.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/b169045091/NonNestMember.java
index 02fd5e7..f5923f6 100644
--- a/src/test/examplesJava11/com/android/tools/r8/shaking/b169045091/examples/NonNestMember.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/b169045091/NonNestMember.java
@@ -2,6 +2,6 @@
 // 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.shaking.b169045091.examples;
+package com.android.tools.r8.jdk11.desugar.nest.b169045091;
 
 public class NonNestMember extends NestHost.NestMember {}
diff --git a/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/Host.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/Host.java
new file mode 100644
index 0000000..72e8cd9
--- /dev/null
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/Host.java
@@ -0,0 +1,11 @@
+// Copyright (c) 2024, 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.jdk11.desugar.nest.dex;
+
+class Host {
+
+  static class Member1 {}
+
+  static class Member2 {}
+}
diff --git a/src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestAttributesInDexRewriteInvokeInterfaceTest.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/NestAttributesInDexRewriteInvokeInterfaceTest.java
similarity index 99%
rename from src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestAttributesInDexRewriteInvokeInterfaceTest.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/NestAttributesInDexRewriteInvokeInterfaceTest.java
index bb32170..6442bab 100644
--- a/src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestAttributesInDexRewriteInvokeInterfaceTest.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/NestAttributesInDexRewriteInvokeInterfaceTest.java
@@ -1,7 +1,7 @@
 // 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 com.android.tools.r8.desugar.nestaccesscontrol;
+package com.android.tools.r8.jdk11.desugar.nest.dex;
 
 import static com.android.tools.r8.DiagnosticsMatcher.diagnosticMessage;
 import static org.hamcrest.CoreMatchers.containsString;
diff --git a/src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestAttributesInDexRewriteInvokeSpecialTest.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/NestAttributesInDexRewriteInvokeSpecialTest.java
similarity index 89%
rename from src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestAttributesInDexRewriteInvokeSpecialTest.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/NestAttributesInDexRewriteInvokeSpecialTest.java
index 220f6c0..22b02be 100644
--- a/src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestAttributesInDexRewriteInvokeSpecialTest.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/NestAttributesInDexRewriteInvokeSpecialTest.java
@@ -1,9 +1,8 @@
 // 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.nestaccesscontrol;
+package com.android.tools.r8.jdk11.desugar.nest.dex;
 
-import static com.android.tools.r8.utils.FileUtils.JAR_EXTENSION;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static com.google.common.base.Predicates.alwaysTrue;
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -11,16 +10,14 @@
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assume.assumeTrue;
 
+import com.android.tools.r8.TestBase;
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.TestParametersCollection;
-import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.utils.AndroidApiLevel;
 import com.android.tools.r8.utils.StringUtils;
 import com.android.tools.r8.utils.codeinspector.ClassSubject;
 import com.android.tools.r8.utils.codeinspector.InstructionSubject;
 import com.android.tools.r8.utils.codeinspector.MethodSubject;
-import java.nio.file.Path;
-import java.nio.file.Paths;
 import java.util.function.Predicate;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -31,16 +28,12 @@
 @RunWith(Parameterized.class)
 public class NestAttributesInDexRewriteInvokeSpecialTest extends NestAttributesInDexTestBase {
 
-  private static final Path JDK17_JAR =
-      Paths.get(ToolHelper.TESTS_BUILD_DIR, "examplesJava11")
-          .resolve("nesthostexample" + JAR_EXTENSION);
-  private static final String MAIN = "nesthostexample.NestHierachy";
-
-  @Parameter() public TestParameters parameters;
+  @Parameter(0)
+  public TestParameters parameters;
 
   @Parameters(name = "{0}")
   public static TestParametersCollection data() {
-    return getTestParameters().withAllRuntimes().withAllApiLevels().build();
+    return TestBase.getTestParameters().withAllRuntimes().withAllApiLevels().build();
   }
 
   private static final String EXPECTED_OUTPUT =
@@ -51,8 +44,8 @@
   public void testRuntime() throws Exception {
     assumeTrue(parameters.isCfRuntime() && isRuntimeWithNestSupport(parameters.asCfRuntime()));
     testForJvm(parameters)
-        .addProgramFiles(JDK17_JAR)
-        .run(parameters.getRuntime(), MAIN)
+        .addProgramClassesAndInnerClasses(NestHierachy.class)
+        .run(parameters.getRuntime(), NestHierachy.class)
         .assertSuccessWithOutput(EXPECTED_OUTPUT);
   }
 
@@ -60,10 +53,10 @@
   public void testD8() throws Exception {
     parameters.assumeDexRuntime();
     testForD8()
-        .addProgramFiles(JDK17_JAR)
+        .addProgramClassesAndInnerClasses(NestHierachy.class)
         .setMinApi(parameters)
         .compile()
-        .run(parameters.getRuntime(), MAIN)
+        .run(parameters.getRuntime(), NestHierachy.class)
         .assertSuccessWithOutput(EXPECTED_OUTPUT);
   }
 
@@ -174,13 +167,13 @@
     // TODO(b/247047415): Update test when a DEX VM natively supporting nests is added.
     assertFalse(parameters.getApiLevel().getLevel() > 35);
     testForD8()
-        .addProgramFiles(JDK17_JAR)
+        .addProgramClassesAndInnerClasses(NestHierachy.class)
         .setMinApi(AndroidApiLevel.U)
         .addOptionsModification(options -> options.emitNestAnnotationsInDex = true)
         .compile()
         .inspect(
             inspector -> {
-              ClassSubject innerSub = inspector.clazz("nesthostexample.NestHierachy$InnerSub");
+              ClassSubject innerSub = inspector.clazz(NestHierachy.InnerSub.class);
               assertThat(innerSub, isPresent());
               // invokespecial on public super.
               assertSingleInvokeSuper(innerSub.uniqueMethodWithOriginalName("m1"));
@@ -193,7 +186,7 @@
               assertSingleInvokeStatic(innerSub.uniqueMethodWithOriginalName("s2"));
 
               // invoke-virtual on public nest members, invoke-direct on private nest members
-              ClassSubject outer = inspector.clazz("nesthostexample.NestHierachy");
+              ClassSubject outer = inspector.clazz(NestHierachy.class);
               assertThat(outer, isPresent());
               MethodSubject callOnInnerSuper =
                   outer.uniqueMethodWithOriginalName("callOnInnerSuper");
diff --git a/src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestAttributesInDexRewriteInvokeSuperTest.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/NestAttributesInDexRewriteInvokeSuperTest.java
similarity index 99%
rename from src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestAttributesInDexRewriteInvokeSuperTest.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/NestAttributesInDexRewriteInvokeSuperTest.java
index 1894fa6..28967bd 100644
--- a/src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestAttributesInDexRewriteInvokeSuperTest.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/NestAttributesInDexRewriteInvokeSuperTest.java
@@ -1,7 +1,7 @@
 // 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.nestaccesscontrol;
+package com.android.tools.r8.jdk11.desugar.nest.dex;
 
 import static com.android.tools.r8.DiagnosticsMatcher.diagnosticMessage;
 import static org.hamcrest.CoreMatchers.containsString;
diff --git a/src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestAttributesInDexRewriteInvokeVirtualTest.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/NestAttributesInDexRewriteInvokeVirtualTest.java
similarity index 99%
rename from src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestAttributesInDexRewriteInvokeVirtualTest.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/NestAttributesInDexRewriteInvokeVirtualTest.java
index d2c83a5..f032116 100644
--- a/src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestAttributesInDexRewriteInvokeVirtualTest.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/NestAttributesInDexRewriteInvokeVirtualTest.java
@@ -1,7 +1,7 @@
 // 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 com.android.tools.r8.desugar.nestaccesscontrol;
+package com.android.tools.r8.jdk11.desugar.nest.dex;
 
 import static com.android.tools.r8.DiagnosticsMatcher.diagnosticMessage;
 import static org.hamcrest.CoreMatchers.containsString;
diff --git a/src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestAttributesInDexShrinkingFieldsTest.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/NestAttributesInDexShrinkingFieldsTest.java
similarity index 99%
rename from src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestAttributesInDexShrinkingFieldsTest.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/NestAttributesInDexShrinkingFieldsTest.java
index 790498d..abd2a73 100644
--- a/src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestAttributesInDexShrinkingFieldsTest.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/NestAttributesInDexShrinkingFieldsTest.java
@@ -1,7 +1,7 @@
 // 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 com.android.tools.r8.desugar.nestaccesscontrol;
+package com.android.tools.r8.jdk11.desugar.nest.dex;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
diff --git a/src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestAttributesInDexShrinkingMethodsTest.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/NestAttributesInDexShrinkingMethodsTest.java
similarity index 99%
rename from src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestAttributesInDexShrinkingMethodsTest.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/NestAttributesInDexShrinkingMethodsTest.java
index 677e553..8aa6865 100644
--- a/src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestAttributesInDexShrinkingMethodsTest.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/NestAttributesInDexShrinkingMethodsTest.java
@@ -1,7 +1,7 @@
 // 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 com.android.tools.r8.desugar.nestaccesscontrol;
+package com.android.tools.r8.jdk11.desugar.nest.dex;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
diff --git a/src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestAttributesInDexTest.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/NestAttributesInDexTest.java
similarity index 96%
rename from src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestAttributesInDexTest.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/NestAttributesInDexTest.java
index 43668e8..c0c8a15 100644
--- a/src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestAttributesInDexTest.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/NestAttributesInDexTest.java
@@ -1,7 +1,7 @@
 // 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 com.android.tools.r8.desugar.nestaccesscontrol;
+package com.android.tools.r8.jdk11.desugar.nest.dex;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -14,8 +14,8 @@
 import com.android.tools.r8.TestRunResult;
 import com.android.tools.r8.TestRuntime.CfVm;
 import com.android.tools.r8.ToolHelper.DexVm.Version;
-import com.android.tools.r8.desugar.nestaccesscontrol.NestAttributesInDexTest.Host.Member1;
-import com.android.tools.r8.desugar.nestaccesscontrol.NestAttributesInDexTest.Host.Member2;
+import com.android.tools.r8.jdk11.desugar.nest.dex.Host.Member1;
+import com.android.tools.r8.jdk11.desugar.nest.dex.Host.Member2;
 import com.android.tools.r8.transformers.ClassFileTransformer;
 import com.android.tools.r8.utils.AndroidApiLevel;
 import com.android.tools.r8.utils.DescriptorUtils;
@@ -116,6 +116,8 @@
     parameters.assumeDexRuntime();
     testForD8()
         .addProgramClassFileData(getTransformedClasses())
+        .addStrippedOuter(getClass())
+        .addClasspathClasses(AdditionalClassAPIs.class)
         .addProgramClasses(OtherHost.class)
         .setMinApi(parameters)
         .addOptionsModification(options -> options.emitNestAnnotationsInDex = true)
@@ -146,6 +148,7 @@
     assumeTrue(parameters.isDexRuntime() || isRuntimeWithNestSupport(parameters.asCfRuntime()));
     testForR8(parameters.getBackend())
         .addProgramClassFileData(getTransformedClasses())
+        .addStrippedOuter(getClass())
         .addProgramClasses(OtherHost.class)
         .setMinApi(parameters)
         .addOptionsModification(options -> options.emitNestAnnotationsInDex = true)
@@ -165,6 +168,7 @@
     assumeTrue(parameters.isDexRuntime() || isRuntimeWithNestSupport(parameters.asCfRuntime()));
     testForR8(parameters.getBackend())
         .addProgramClassFileData(getTransformedClasses())
+        .addStrippedOuter(getClass())
         .addProgramClasses(OtherHost.class)
         .setMinApi(parameters)
         .addOptionsModification(options -> options.emitNestAnnotationsInDex = true)
@@ -186,6 +190,7 @@
     assumeTrue(parameters.isDexRuntime() || isRuntimeWithNestSupport(parameters.asCfRuntime()));
     testForR8(parameters.getBackend())
         .addProgramClassFileData(getTransformedClasses())
+        .addStrippedOuter(getClass())
         .addProgramClasses(OtherHost.class)
         .setMinApi(parameters)
         .addOptionsModification(options -> options.emitNestAnnotationsInDex = true)
@@ -207,6 +212,7 @@
     assumeTrue(parameters.isDexRuntime() || isRuntimeWithNestSupport(parameters.asCfRuntime()));
     testForR8(parameters.getBackend())
         .addProgramClassFileData(getTransformedClasses())
+        .addStrippedOuter(getClass())
         .addProgramClasses(OtherHost.class)
         .setMinApi(parameters)
         .addOptionsModification(options -> options.emitNestAnnotationsInDex = true)
@@ -321,12 +327,4 @@
       System.out.println(AdditionalClassAPIs.isNestmateOf(OtherHost.class, OtherHost.class));
     }
   }
-
-  static class OtherHost {}
-
-  static class Host {
-    static class Member1 {}
-
-    static class Member2 {}
-  }
 }
diff --git a/src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestAttributesInDexTestBase.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/NestAttributesInDexTestBase.java
similarity index 94%
rename from src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestAttributesInDexTestBase.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/NestAttributesInDexTestBase.java
index 9f67110..0834659 100644
--- a/src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestAttributesInDexTestBase.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/NestAttributesInDexTestBase.java
@@ -1,7 +1,7 @@
 // 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 com.android.tools.r8.desugar.nestaccesscontrol;
+package com.android.tools.r8.jdk11.desugar.nest.dex;
 
 import com.android.tools.r8.TestBase;
 import com.android.tools.r8.TestRuntime;
diff --git a/src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestAttributesNotInDexWithForceNestDesugaringTest.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/NestAttributesNotInDexWithForceNestDesugaringTest.java
similarity index 93%
rename from src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestAttributesNotInDexWithForceNestDesugaringTest.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/NestAttributesNotInDexWithForceNestDesugaringTest.java
index 86eff4e..ca9a44e 100644
--- a/src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestAttributesNotInDexWithForceNestDesugaringTest.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/NestAttributesNotInDexWithForceNestDesugaringTest.java
@@ -1,7 +1,7 @@
 // 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.nestaccesscontrol;
+package com.android.tools.r8.jdk11.desugar.nest.dex;
 
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentIf;
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -10,9 +10,9 @@
 
 import com.android.tools.r8.CompilationFailedException;
 import com.android.tools.r8.TestParameters;
-import com.android.tools.r8.desugar.nestaccesscontrol.NestAttributesNotInDexWithForceNestDesugaringTest.Host.Member1;
-import com.android.tools.r8.desugar.nestaccesscontrol.NestAttributesNotInDexWithForceNestDesugaringTest.Host.Member2;
 import com.android.tools.r8.graph.MethodAccessFlags;
+import com.android.tools.r8.jdk11.desugar.nest.dex.NestAttributesNotInDexWithForceNestDesugaringTest.Host.Member1;
+import com.android.tools.r8.jdk11.desugar.nest.dex.NestAttributesNotInDexWithForceNestDesugaringTest.Host.Member2;
 import com.android.tools.r8.synthesis.SyntheticItemsTestUtils;
 import com.android.tools.r8.transformers.ClassFileTransformer;
 import com.android.tools.r8.transformers.ClassFileTransformer.MethodPredicate;
diff --git a/src/test/examplesJava11/nesthostexample/NestHierachy.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/NestHierachy.java
similarity index 96%
rename from src/test/examplesJava11/nesthostexample/NestHierachy.java
rename to src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/NestHierachy.java
index ba971d2..10d024a 100644
--- a/src/test/examplesJava11/nesthostexample/NestHierachy.java
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/NestHierachy.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 nesthostexample;
+package com.android.tools.r8.jdk11.desugar.nest.dex;
 
 public class NestHierachy {
   abstract static class InnerSuper {
diff --git a/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/OtherHost.java b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/OtherHost.java
new file mode 100644
index 0000000..907e038
--- /dev/null
+++ b/src/test/examplesJava11/com/android/tools/r8/jdk11/desugar/nest/dex/OtherHost.java
@@ -0,0 +1,6 @@
+// Copyright (c) 2024, 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.jdk11.desugar.nest.dex;
+
+class OtherHost {}
diff --git a/src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestAccessControlTestUtils.java b/src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestAccessControlTestUtils.java
deleted file mode 100644
index cba6309..0000000
--- a/src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/NestAccessControlTestUtils.java
+++ /dev/null
@@ -1,86 +0,0 @@
-// Copyright (c) 2019, 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.nestaccesscontrol;
-
-import static com.android.tools.r8.utils.FileUtils.JAR_EXTENSION;
-
-import com.android.tools.r8.ToolHelper;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.List;
-
-public class NestAccessControlTestUtils {
-
-  public static final Path JAR =
-      Paths.get(ToolHelper.EXAMPLES_JAVA11_JAR_DIR).resolve("nesthostexample" + JAR_EXTENSION);
-  public static final Path CLASSES_PATH =
-      Paths.get(ToolHelper.getExamplesJava11BuildDir()).resolve("nesthostexample/");
-
-  public static final List<String> CLASS_NAMES =
-      ImmutableList.of(
-          "BasicNestHostWithInnerClassFields",
-          "BasicNestHostWithInnerClassFields$BasicNestedClass",
-          "BasicNestHostWithInnerClassMethods",
-          "BasicNestHostWithInnerClassMethods$BasicNestedClass",
-          "BasicNestHostWithInnerClassConstructors",
-          "BasicNestHostWithInnerClassConstructors$BasicNestedClass",
-          "BasicNestHostWithInnerClassConstructors$UnInstantiatedClass",
-          "BasicNestHostWithAnonymousInnerClass",
-          "BasicNestHostWithAnonymousInnerClass$1",
-          "BasicNestHostWithAnonymousInnerClass$InterfaceForAnonymousClass",
-          "BasicNestHostClassMerging",
-          "BasicNestHostClassMerging$MiddleInner",
-          "BasicNestHostClassMerging$MiddleOuter",
-          "BasicNestHostClassMerging$InnerMost",
-          "BasicNestHostTreePruning",
-          "BasicNestHostTreePruning$Pruned",
-          "BasicNestHostTreePruning$NotPruned",
-          "NestHostInlining",
-          "NestHostInlining$InnerWithPrivAccess",
-          "NestHostInlining$InnerNoPrivAccess",
-          "NestHostInlining$EmptyNoPrivAccess",
-          "NestHostInlining$EmptyWithPrivAccess",
-          "NestHostInliningSubclasses",
-          "NestHostInliningSubclasses$InnerWithPrivAccess",
-          "NestHostInliningSubclasses$InnerNoPrivAccess",
-          "OutsideInliningNoAccess",
-          "OutsideInliningWithAccess",
-          "NestPvtMethodCallInlined",
-          "NestPvtMethodCallInlined$Inner",
-          "NestPvtMethodCallInlined$InnerInterface",
-          "NestPvtMethodCallInlined$InnerInterfaceImpl",
-          "NestPvtMethodCallInlined$InnerSub",
-          "NestPvtFieldPropagated",
-          "NestPvtFieldPropagated$Inner",
-          "NestHostExample",
-          "NestHostExample$NestMemberInner",
-          "NestHostExample$NestMemberInner$NestMemberInnerInner",
-          "NestHostExample$StaticNestMemberInner",
-          "NestHostExample$StaticNestMemberInner$StaticNestMemberInnerInner",
-          "NestHostExample$StaticNestInterfaceInner",
-          "NestHostExample$ExampleEnumCompilation");
-  public static final ImmutableMap<String, String> MAIN_CLASSES =
-      ImmutableMap.<String, String>builder()
-          .put("fields", "BasicNestHostWithInnerClassFields")
-          .put("methods", "BasicNestHostWithInnerClassMethods")
-          .put("constructors", "BasicNestHostWithInnerClassConstructors")
-          .put("anonymous", "BasicNestHostWithAnonymousInnerClass")
-          .put("all", "NestHostExample")
-          .put("merge", "BasicNestHostClassMerging")
-          .put("prune", "BasicNestHostTreePruning")
-          .put("inlining", "NestHostInlining")
-          .put("inliningSub", "NestHostInliningSubclasses")
-          .put("pvtCallInlined", "NestPvtMethodCallInlined")
-          .put("memberPropagated", "NestPvtFieldPropagated")
-          .build();
-
-  public static String getMainClass(String id) {
-    return "nesthostexample." + MAIN_CLASSES.get(id);
-  }
-
-
-}