Restructure java17 test module
Bug: b/344503104
Change-Id: I057fc74c897e43ed0997f6f72b6c8dfba6fabef7
diff --git a/d8_r8/test_modules/tests_java_17/build.gradle.kts b/d8_r8/test_modules/tests_java_17/build.gradle.kts
index 6f37f81..473f4da 100644
--- a/d8_r8/test_modules/tests_java_17/build.gradle.kts
+++ b/d8_r8/test_modules/tests_java_17/build.gradle.kts
@@ -17,7 +17,7 @@
// to tests. Currently both the Test target below and buildExampleJars depend
// on this.
sourceSets.test.configure {
- java.srcDir(root.resolveAll("src", "test", "examplesJava17"))
+ java.srcDir(root.resolveAll("src", "test", "java17"))
}
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
@@ -35,9 +35,6 @@
implementation(projectTask("main", "processResources").outputs.files)
}
-// We just need to register the examples jars for it to be referenced by other modules.
-val buildExampleJars = buildExampleJars("examplesJava17")
-
tasks {
withType<JavaCompile> {
dependsOn(gradle.includedBuild("shared").task(":downloadDeps"))
@@ -52,10 +49,7 @@
TestingState.setUpTestingState(this)
javaLauncher = getJavaLauncher(Jdk.JDK_17)
systemProperty("TEST_DATA_LOCATION",
- // This should be
- // layout.buildDirectory.dir("classes/java/test").get().toString()
- // once the use of 'buildExampleJars' above is removed.
- getRoot().resolveAll("build", "test", "examplesJava17", "classes"))
+ layout.buildDirectory.dir("classes/java/test").get().toString())
systemProperty("TESTBASE_DATA_LOCATION",
testbaseJavaCompileTask.outputs.files.getAsPath().split(File.pathSeparator)[0])
}
diff --git a/d8_r8/test_modules/tests_java_8/build.gradle.kts b/d8_r8/test_modules/tests_java_8/build.gradle.kts
index d2e7bf7..a718ef2 100644
--- a/d8_r8/test_modules/tests_java_8/build.gradle.kts
+++ b/d8_r8/test_modules/tests_java_8/build.gradle.kts
@@ -60,7 +60,6 @@
val sourceSetDependenciesTasks = arrayOf(
projectTask("tests_java_9", getExampleJarsTaskName("examplesJava9")),
- projectTask("tests_java_17", getExampleJarsTaskName("examplesJava17")),
)
fun testDependencies() : FileCollection {
diff --git a/src/test/examplesJava17/backport/MathBackportJava17Test.java b/src/test/java17/com/android/tools/r8/jdk17/backport/MathBackportJava17Test.java
similarity index 97%
rename from src/test/examplesJava17/backport/MathBackportJava17Test.java
rename to src/test/java17/com/android/tools/r8/jdk17/backport/MathBackportJava17Test.java
index bc6e800..f4d2522 100644
--- a/src/test/examplesJava17/backport/MathBackportJava17Test.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/backport/MathBackportJava17Test.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 backport;
+package com.android.tools.r8.jdk17.backport;
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestParameters;
diff --git a/src/test/examplesJava17/backport/ObjectsBackportJava17Test.java b/src/test/java17/com/android/tools/r8/jdk17/backport/ObjectsBackportJava17Test.java
similarity index 98%
rename from src/test/examplesJava17/backport/ObjectsBackportJava17Test.java
rename to src/test/java17/com/android/tools/r8/jdk17/backport/ObjectsBackportJava17Test.java
index 32ba077..bbff907 100644
--- a/src/test/examplesJava17/backport/ObjectsBackportJava17Test.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/backport/ObjectsBackportJava17Test.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 backport;
+package com.android.tools.r8.jdk17.backport;
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestParameters;
diff --git a/src/test/examplesJava17/backport/StrictMathBackportJava17Test.java b/src/test/java17/com/android/tools/r8/jdk17/backport/StrictMathBackportJava17Test.java
similarity index 98%
rename from src/test/examplesJava17/backport/StrictMathBackportJava17Test.java
rename to src/test/java17/com/android/tools/r8/jdk17/backport/StrictMathBackportJava17Test.java
index 0f71867..13c69ab 100644
--- a/src/test/examplesJava17/backport/StrictMathBackportJava17Test.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/backport/StrictMathBackportJava17Test.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 backport;
+package com.android.tools.r8.jdk17.backport;
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestParameters;
diff --git a/src/test/examplesJava17/desugaredlibrary/StreamToListTest.java b/src/test/java17/com/android/tools/r8/jdk17/desugaredlibrary/desugaredlibrary/StreamToListTest.java
similarity index 97%
rename from src/test/examplesJava17/desugaredlibrary/StreamToListTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/desugaredlibrary/desugaredlibrary/StreamToListTest.java
index e9e4786..43502d8 100644
--- a/src/test/examplesJava17/desugaredlibrary/StreamToListTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/desugaredlibrary/desugaredlibrary/StreamToListTest.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 desugaredlibrary;
+package com.android.tools.r8.jdk17.desugaredlibrary.desugaredlibrary;
import static com.android.tools.r8.desugar.desugaredlibrary.test.CompilationSpecification.SPECIFICATIONS_WITH_CF2CF;
import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.JDK11;
diff --git a/src/test/examplesJava17/enumStatic/StaticEnumMergingTest.java b/src/test/java17/com/android/tools/r8/jdk17/enumStatic/StaticEnumMergingTest.java
similarity index 94%
rename from src/test/examplesJava17/enumStatic/StaticEnumMergingTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/enumStatic/StaticEnumMergingTest.java
index 19f4f8c..68ac889 100644
--- a/src/test/examplesJava17/enumStatic/StaticEnumMergingTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/enumStatic/StaticEnumMergingTest.java
@@ -1,8 +1,9 @@
-package enumStatic; // Copyright (c) 2023, the R8 project authors. Please see the AUTHORS file
-
+// 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.jdk17.enumStatic;
+
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.enumunboxing.EnumUnboxingTestBase;
import com.android.tools.r8.utils.StringUtils;
diff --git a/src/test/examplesJava17/enum_sealed/SealedClassesEnumJdk17CompiledTest.java b/src/test/java17/com/android/tools/r8/jdk17/enum_sealed/SealedClassesEnumJdk17CompiledTest.java
similarity index 98%
rename from src/test/examplesJava17/enum_sealed/SealedClassesEnumJdk17CompiledTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/enum_sealed/SealedClassesEnumJdk17CompiledTest.java
index 8aa4194..f131f91 100644
--- a/src/test/examplesJava17/enum_sealed/SealedClassesEnumJdk17CompiledTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/enum_sealed/SealedClassesEnumJdk17CompiledTest.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 enum_sealed;
+package com.android.tools.r8.jdk17.enum_sealed;
import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
import static junit.framework.Assert.assertEquals;
diff --git a/src/test/examplesJava17/jdk17/ir/optimize/interfaces/CastWithMultipleBoundsJavacBytecodeTest.java b/src/test/java17/com/android/tools/r8/jdk17/interfaces/CastWithMultipleBoundsJavacBytecodeTest.java
similarity index 98%
rename from src/test/examplesJava17/jdk17/ir/optimize/interfaces/CastWithMultipleBoundsJavacBytecodeTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/interfaces/CastWithMultipleBoundsJavacBytecodeTest.java
index 768375c..f17c19b 100644
--- a/src/test/examplesJava17/jdk17/ir/optimize/interfaces/CastWithMultipleBoundsJavacBytecodeTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/interfaces/CastWithMultipleBoundsJavacBytecodeTest.java
@@ -1,7 +1,7 @@
// 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 jdk17.ir.optimize.interfaces;
+package com.android.tools.r8.jdk17.interfaces;
import static org.junit.Assert.assertEquals;
diff --git a/src/test/examplesJava17/lambda/LambdaJava17Test.java b/src/test/java17/com/android/tools/r8/jdk17/lambda/LambdaJava17Test.java
similarity index 98%
rename from src/test/examplesJava17/lambda/LambdaJava17Test.java
rename to src/test/java17/com/android/tools/r8/jdk17/lambda/LambdaJava17Test.java
index 6da8ada..43fd2a7 100644
--- a/src/test/examplesJava17/lambda/LambdaJava17Test.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/lambda/LambdaJava17Test.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 lambda;
+package com.android.tools.r8.jdk17.lambda;
import static com.android.tools.r8.utils.AndroidApiLevel.B;
diff --git a/src/test/examplesJava17/nest/NestLambda.java b/src/test/java17/com/android/tools/r8/jdk17/nest/NestLambda.java
similarity index 95%
rename from src/test/examplesJava17/nest/NestLambda.java
rename to src/test/java17/com/android/tools/r8/jdk17/nest/NestLambda.java
index c60a8fb..aa34bd3 100644
--- a/src/test/examplesJava17/nest/NestLambda.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/nest/NestLambda.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 nest;
+package com.android.tools.r8.jdk17.nest;
public class NestLambda {
diff --git a/src/test/examplesJava17/nest/NestLambdaJava17Test.java b/src/test/java17/com/android/tools/r8/jdk17/nest/NestLambdaJava17Test.java
similarity index 97%
rename from src/test/examplesJava17/nest/NestLambdaJava17Test.java
rename to src/test/java17/com/android/tools/r8/jdk17/nest/NestLambdaJava17Test.java
index d3c4330..238cb21 100644
--- a/src/test/examplesJava17/nest/NestLambdaJava17Test.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/nest/NestLambdaJava17Test.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 nest;
+package com.android.tools.r8.jdk17.nest;
import com.android.tools.r8.JdkClassFileProvider;
import com.android.tools.r8.TestBase;
diff --git a/src/test/examplesJava17/pattern_matching_for_instanceof/PatternMatchingForInstanceOfTest.java b/src/test/java17/com/android/tools/r8/jdk17/pattern_matching_for_instanceof/PatternMatchingForInstanceOfTest.java
similarity index 97%
rename from src/test/examplesJava17/pattern_matching_for_instanceof/PatternMatchingForInstanceOfTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/pattern_matching_for_instanceof/PatternMatchingForInstanceOfTest.java
index 569336c..0647b7f 100644
--- a/src/test/examplesJava17/pattern_matching_for_instanceof/PatternMatchingForInstanceOfTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/pattern_matching_for_instanceof/PatternMatchingForInstanceOfTest.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 pattern_matching_for_instanceof;
+package com.android.tools.r8.jdk17.pattern_matching_for_instanceof;
import com.android.tools.r8.R8TestBuilder;
import com.android.tools.r8.TestBase;
diff --git a/src/test/examplesJava17/records/EmptyRecordAnnotationTest.java b/src/test/java17/com/android/tools/r8/jdk17/records/EmptyRecordAnnotationTest.java
similarity index 91%
rename from src/test/examplesJava17/records/EmptyRecordAnnotationTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/EmptyRecordAnnotationTest.java
index 691b91c..d06f46f 100644
--- a/src/test/examplesJava17/records/EmptyRecordAnnotationTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/EmptyRecordAnnotationTest.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 records;
+package com.android.tools.r8.jdk17.records;
import com.android.tools.r8.JdkClassFileProvider;
import com.android.tools.r8.TestBase;
@@ -68,9 +68,9 @@
.addLibraryProvider(JdkClassFileProvider.fromSystemJdk())
.addInnerClassesAndStrippedOuter(getClass())
.setMinApi(parameters)
- .addKeepRules("-keep class records.EmptyRecordAnnotationTest$TestClass { *; }")
+ .addKeepClassAndMembersRules(EmptyRecordAnnotationTest.TestClass.class)
.addKeepRules("-keepattributes *Annotation*")
- .addKeepRules("-keep class records.EmptyRecordAnnotationTest$Empty")
+ .addKeepClassRules(EmptyRecordAnnotationTest.Empty.class)
.addKeepMainRule(TestClass.class)
.compile()
.applyIf(parameters.isCfRuntime(), r -> r.inspect(RecordTestUtils::assertRecordsAreRecords))
@@ -94,10 +94,10 @@
recordName = "com.android.tools.r8.RecordTag";
}
return StringUtils.lines(
- "class " + recordName, "class records.EmptyRecordAnnotationTest$Empty");
+ "class " + recordName, "class " + EmptyRecordAnnotationTest.Empty.class.getTypeName());
}
return StringUtils.lines(
- "class java.lang.Record", "class records.EmptyRecordAnnotationTest$Empty");
+ "class java.lang.Record", "class " + EmptyRecordAnnotationTest.Empty.class.getTypeName());
}
record Empty() {}
diff --git a/src/test/examplesJava17/records/EmptyRecordTest.java b/src/test/java17/com/android/tools/r8/jdk17/records/EmptyRecordTest.java
similarity index 98%
rename from src/test/examplesJava17/records/EmptyRecordTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/EmptyRecordTest.java
index 963a514..4592b7f 100644
--- a/src/test/examplesJava17/records/EmptyRecordTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/EmptyRecordTest.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 records;
+package com.android.tools.r8.jdk17.records;
import static org.junit.Assume.assumeFalse;
diff --git a/src/test/examplesJava17/records/RecordBlog.java b/src/test/java17/com/android/tools/r8/jdk17/records/RecordBlog.java
similarity index 91%
rename from src/test/examplesJava17/records/RecordBlog.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/RecordBlog.java
index 0b40c86..66ddf39 100644
--- a/src/test/examplesJava17/records/RecordBlog.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/RecordBlog.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 records;
+package com.android.tools.r8.jdk17.records;
public class RecordBlog {
diff --git a/src/test/examplesJava17/records/RecordBlogTest.java b/src/test/java17/com/android/tools/r8/jdk17/records/RecordBlogTest.java
similarity index 97%
rename from src/test/examplesJava17/records/RecordBlogTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/RecordBlogTest.java
index 37f1117..7080763 100644
--- a/src/test/examplesJava17/records/RecordBlogTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/RecordBlogTest.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 records;
+package com.android.tools.r8.jdk17.records;
import static org.junit.Assert.assertTrue;
import static org.junit.Assume.assumeTrue;
@@ -28,7 +28,7 @@
public class RecordBlogTest extends TestBase {
private static final String REFERENCE_OUTPUT_FORMAT = "Person[name=%s, age=42]";
- private static final String CLASS = "records.RecordBlog$Person";
+ private static final String CLASS = RecordBlog.Person.class.getTypeName();
private static final Map<String, String> KEEP_RULE_TO_OUTPUT_FORMAT =
ImmutableMap.<String, String>builder()
.put("-dontobfuscate\n-dontoptimize", "RecordBlog$Person[name=%s, age=42]")
diff --git a/src/test/examplesJava17/records/RecordClasspathTest.java b/src/test/java17/com/android/tools/r8/jdk17/records/RecordClasspathTest.java
similarity index 99%
rename from src/test/examplesJava17/records/RecordClasspathTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/RecordClasspathTest.java
index 867d632..89abbae 100644
--- a/src/test/examplesJava17/records/RecordClasspathTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/RecordClasspathTest.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 records;
+package com.android.tools.r8.jdk17.records;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
diff --git a/src/test/examplesJava17/records/RecordComponentAnnotationsTest.java b/src/test/java17/com/android/tools/r8/jdk17/records/RecordComponentAnnotationsTest.java
similarity index 80%
rename from src/test/examplesJava17/records/RecordComponentAnnotationsTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/RecordComponentAnnotationsTest.java
index 8aba71c..e721f0d 100644
--- a/src/test/examplesJava17/records/RecordComponentAnnotationsTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/RecordComponentAnnotationsTest.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 records;
+package com.android.tools.r8.jdk17.records;
import static com.android.tools.r8.utils.codeinspector.AnnotationMatchers.hasAnnotationTypes;
import static com.android.tools.r8.utils.codeinspector.AnnotationMatchers.hasElements;
@@ -40,6 +40,8 @@
@RunWith(Parameterized.class)
public class RecordComponentAnnotationsTest extends TestBase {
+ private static final String ANNOTATION_PREFIX =
+ "@" + RecordComponentAnnotationsTest.class.getTypeName() + "$";
private static final String JVM_UNTIL_20_EXPECTED_RESULT =
StringUtils.lines(
"Jane Doe",
@@ -50,21 +52,21 @@
"java.lang.String",
"true",
"2",
- "@records.RecordComponentAnnotationsTest$Annotation(\"a\")",
- "@records.RecordComponentAnnotationsTest$AnnotationRecordComponentOnly(\"c\")",
+ ANNOTATION_PREFIX + "Annotation(\"a\")",
+ ANNOTATION_PREFIX + "AnnotationRecordComponentOnly(\"c\")",
"age",
"int",
"true",
"2",
- "@records.RecordComponentAnnotationsTest$Annotation(\"x\")",
- "@records.RecordComponentAnnotationsTest$AnnotationRecordComponentOnly(\"z\")",
+ ANNOTATION_PREFIX + "Annotation(\"x\")",
+ ANNOTATION_PREFIX + "AnnotationRecordComponentOnly(\"z\")",
"2",
"2",
- "@records.RecordComponentAnnotationsTest$Annotation(\"x\")",
- "@records.RecordComponentAnnotationsTest$AnnotationFieldOnly(\"y\")",
+ ANNOTATION_PREFIX + "Annotation(\"x\")",
+ ANNOTATION_PREFIX + "AnnotationFieldOnly(\"y\")",
"2",
- "@records.RecordComponentAnnotationsTest$Annotation(\"a\")",
- "@records.RecordComponentAnnotationsTest$AnnotationFieldOnly(\"b\")");
+ ANNOTATION_PREFIX + "Annotation(\"a\")",
+ ANNOTATION_PREFIX + "AnnotationFieldOnly(\"b\")");
private static final String JVM_FROM_21_EXPECTED_RESULT =
JVM_UNTIL_20_EXPECTED_RESULT.replaceAll(
"records.RecordComponentAnnotationsTest\\$Annotation",
@@ -79,21 +81,21 @@
"java.lang.String",
"true",
"2",
- "@records.RecordComponentAnnotationsTest$Annotation(value=a)",
- "@records.RecordComponentAnnotationsTest$AnnotationRecordComponentOnly(value=c)",
+ ANNOTATION_PREFIX + "Annotation(value=a)",
+ ANNOTATION_PREFIX + "AnnotationRecordComponentOnly(value=c)",
"age",
"int",
"true",
"2",
- "@records.RecordComponentAnnotationsTest$Annotation(value=x)",
- "@records.RecordComponentAnnotationsTest$AnnotationRecordComponentOnly(value=z)",
+ ANNOTATION_PREFIX + "Annotation(value=x)",
+ ANNOTATION_PREFIX + "AnnotationRecordComponentOnly(value=z)",
"2",
"2",
- "@records.RecordComponentAnnotationsTest$Annotation(value=x)",
- "@records.RecordComponentAnnotationsTest$AnnotationFieldOnly(value=y)",
+ ANNOTATION_PREFIX + "Annotation(value=x)",
+ ANNOTATION_PREFIX + "AnnotationFieldOnly(value=y)",
"2",
- "@records.RecordComponentAnnotationsTest$Annotation(value=a)",
- "@records.RecordComponentAnnotationsTest$AnnotationFieldOnly(value=b)");
+ ANNOTATION_PREFIX + "Annotation(value=a)",
+ ANNOTATION_PREFIX + "AnnotationFieldOnly(value=b)");
private static final String JVM_EXPECTED_RESULT_R8 =
StringUtils.lines(
"Jane Doe",
@@ -104,21 +106,21 @@
"java.lang.String",
"true",
"2",
- "@records.RecordComponentAnnotationsTest$Annotation(\"a\")",
- "@records.RecordComponentAnnotationsTest$AnnotationRecordComponentOnly(\"c\")",
+ ANNOTATION_PREFIX + "Annotation(\"a\")",
+ ANNOTATION_PREFIX + "AnnotationRecordComponentOnly(\"c\")",
"b",
"int",
"true",
"2",
- "@records.RecordComponentAnnotationsTest$Annotation(\"x\")",
- "@records.RecordComponentAnnotationsTest$AnnotationRecordComponentOnly(\"z\")",
+ ANNOTATION_PREFIX + "Annotation(\"x\")",
+ ANNOTATION_PREFIX + "AnnotationRecordComponentOnly(\"z\")",
"2",
"2",
- "@records.RecordComponentAnnotationsTest$Annotation(\"a\")",
- "@records.RecordComponentAnnotationsTest$AnnotationFieldOnly(\"b\")",
+ ANNOTATION_PREFIX + "Annotation(\"a\")",
+ ANNOTATION_PREFIX + "AnnotationFieldOnly(\"b\")",
"2",
- "@records.RecordComponentAnnotationsTest$Annotation(\"x\")",
- "@records.RecordComponentAnnotationsTest$AnnotationFieldOnly(\"y\")");
+ ANNOTATION_PREFIX + "Annotation(\"x\")",
+ ANNOTATION_PREFIX + "AnnotationFieldOnly(\"y\")");
private static final String ART_EXPECTED_RESULT_R8 =
StringUtils.lines(
"Jane Doe",
@@ -129,21 +131,21 @@
"java.lang.String",
"true",
"2",
- "@records.RecordComponentAnnotationsTest$Annotation(value=a)",
- "@records.RecordComponentAnnotationsTest$AnnotationRecordComponentOnly(value=c)",
+ ANNOTATION_PREFIX + "Annotation(value=a)",
+ ANNOTATION_PREFIX + "AnnotationRecordComponentOnly(value=c)",
"b",
"int",
"true",
"2",
- "@records.RecordComponentAnnotationsTest$Annotation(value=x)",
- "@records.RecordComponentAnnotationsTest$AnnotationRecordComponentOnly(value=z)",
+ ANNOTATION_PREFIX + "Annotation(value=x)",
+ ANNOTATION_PREFIX + "AnnotationRecordComponentOnly(value=z)",
"2",
"2",
- "@records.RecordComponentAnnotationsTest$Annotation(value=a)",
- "@records.RecordComponentAnnotationsTest$AnnotationFieldOnly(value=b)",
+ ANNOTATION_PREFIX + "Annotation(value=a)",
+ ANNOTATION_PREFIX + "AnnotationFieldOnly(value=b)",
"2",
- "@records.RecordComponentAnnotationsTest$Annotation(value=x)",
- "@records.RecordComponentAnnotationsTest$AnnotationFieldOnly(value=y)");
+ ANNOTATION_PREFIX + "Annotation(value=x)",
+ ANNOTATION_PREFIX + "AnnotationFieldOnly(value=y)");
private static final String JVM_EXPECTED_RESULT_R8_NO_KEEP_ANNOTATIONS =
StringUtils.lines(
"Jane Doe",
@@ -154,14 +156,14 @@
"java.lang.String",
"true",
"2",
- "@records.RecordComponentAnnotationsTest$Annotation(\"a\")",
- "@records.RecordComponentAnnotationsTest$AnnotationRecordComponentOnly(\"c\")",
+ ANNOTATION_PREFIX + "Annotation(\"a\")",
+ ANNOTATION_PREFIX + "AnnotationRecordComponentOnly(\"c\")",
"b",
"int",
"true",
"2",
- "@records.RecordComponentAnnotationsTest$Annotation(\"x\")",
- "@records.RecordComponentAnnotationsTest$AnnotationRecordComponentOnly(\"z\")",
+ ANNOTATION_PREFIX + "Annotation(\"x\")",
+ ANNOTATION_PREFIX + "AnnotationRecordComponentOnly(\"z\")",
"2",
"0",
"0");
@@ -175,14 +177,14 @@
"java.lang.String",
"true",
"2",
- "@records.RecordComponentAnnotationsTest$Annotation(value=a)",
- "@records.RecordComponentAnnotationsTest$AnnotationRecordComponentOnly(value=c)",
+ ANNOTATION_PREFIX + "Annotation(value=a)",
+ ANNOTATION_PREFIX + "AnnotationRecordComponentOnly(value=c)",
"b",
"int",
"true",
"2",
- "@records.RecordComponentAnnotationsTest$Annotation(value=x)",
- "@records.RecordComponentAnnotationsTest$AnnotationRecordComponentOnly(value=z)",
+ ANNOTATION_PREFIX + "Annotation(value=x)",
+ ANNOTATION_PREFIX + "AnnotationRecordComponentOnly(value=z)",
"2",
"0",
"0");
@@ -307,18 +309,17 @@
.addLibraryFiles(ToolHelper.getAndroidJar(35))
.addKeepMainRule(RecordWithAnnotations.class)
.addKeepClassAndMembersRulesWithAllowObfuscation(
- "records.RecordComponentAnnotationsTest$Person")
+ RecordComponentAnnotationsTest.Person.class)
.addKeepClassAndMembersRules(
- "records.RecordComponentAnnotationsTest$Annotation",
- "records.RecordComponentAnnotationsTest$AnnotationFieldOnly",
- "records.RecordComponentAnnotationsTest$AnnotationRecordComponentOnly")
+ RecordComponentAnnotationsTest.Annotation.class,
+ RecordComponentAnnotationsTest.AnnotationFieldOnly.class,
+ RecordComponentAnnotationsTest.AnnotationRecordComponentOnly.class)
.applyIf(keepAnnotations, TestShrinkerBuilder::addKeepRuntimeVisibleAnnotations)
.setMinApi(parameters)
.compile()
.inspect(
inspector -> {
- ClassSubject person =
- inspector.clazz("records.RecordComponentAnnotationsTest$Person");
+ ClassSubject person = inspector.clazz(RecordComponentAnnotationsTest.Person.class);
FieldSubject name = person.uniqueFieldWithOriginalName("name");
FieldSubject age = person.uniqueFieldWithOriginalName("age");
if (parameters.isCfRuntime()) {
@@ -334,9 +335,10 @@
person.getFinalRecordComponents().get(0).getAnnotations(),
hasAnnotationTypes(
inspector.getTypeSubject(
- "records.RecordComponentAnnotationsTest$Annotation"),
+ RecordComponentAnnotationsTest.Annotation.class.getTypeName()),
inspector.getTypeSubject(
- "records.RecordComponentAnnotationsTest$AnnotationRecordComponentOnly")));
+ RecordComponentAnnotationsTest.AnnotationRecordComponentOnly.class
+ .getTypeName())));
assertThat(
person.getFinalRecordComponents().get(0).getAnnotations().get(0),
hasElements(new Pair<>("value", "a")));
@@ -353,9 +355,10 @@
person.getFinalRecordComponents().get(1).getAnnotations(),
hasAnnotationTypes(
inspector.getTypeSubject(
- "records.RecordComponentAnnotationsTest$Annotation"),
+ RecordComponentAnnotationsTest.Annotation.class.getTypeName()),
inspector.getTypeSubject(
- "records.RecordComponentAnnotationsTest$AnnotationRecordComponentOnly")));
+ RecordComponentAnnotationsTest.AnnotationRecordComponentOnly.class
+ .getTypeName())));
assertThat(
person.getFinalRecordComponents().get(1).getAnnotations().get(0),
hasElements(new Pair<>("value", "x")));
diff --git a/src/test/examplesJava17/records/RecordComponentSignatureTest.java b/src/test/java17/com/android/tools/r8/jdk17/records/RecordComponentSignatureTest.java
similarity index 96%
rename from src/test/examplesJava17/records/RecordComponentSignatureTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/RecordComponentSignatureTest.java
index d2d530b..a885015 100644
--- a/src/test/examplesJava17/records/RecordComponentSignatureTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/RecordComponentSignatureTest.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 records;
+package com.android.tools.r8.jdk17.records;
import static com.android.tools.r8.utils.codeinspector.Matchers.isAbsent;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -94,7 +94,7 @@
.inspect(
inspector -> {
ClassSubject person =
- inspector.clazz("records.RecordComponentSignatureTest$Person");
+ inspector.clazz(RecordComponentSignatureTest.Person.class);
if (parameters.isCfRuntime()) {
assertEquals(2, person.getFinalRecordComponents().size());
@@ -142,7 +142,7 @@
.compile()
.inspect(
inspector -> {
- ClassSubject person = inspector.clazz("records.RecordComponentSignatureTest$Person");
+ ClassSubject person = inspector.clazz(RecordComponentSignatureTest.Person.class);
FieldSubject age = person.uniqueFieldWithOriginalName("age");
assertThat(age, isAbsent());
assertEquals(0, person.getFinalRecordComponents().size());
diff --git a/src/test/examplesJava17/records/RecordHashCodeManyFieldsTest.java b/src/test/java17/com/android/tools/r8/jdk17/records/RecordHashCodeManyFieldsTest.java
similarity index 99%
rename from src/test/examplesJava17/records/RecordHashCodeManyFieldsTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/RecordHashCodeManyFieldsTest.java
index 1cd7313..34c135a 100644
--- a/src/test/examplesJava17/records/RecordHashCodeManyFieldsTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/RecordHashCodeManyFieldsTest.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 records;
+package com.android.tools.r8.jdk17.records;
import static org.junit.Assume.assumeTrue;
diff --git a/src/test/examplesJava17/records/RecordHashCodeTest.java b/src/test/java17/com/android/tools/r8/jdk17/records/RecordHashCodeTest.java
similarity index 98%
rename from src/test/examplesJava17/records/RecordHashCodeTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/RecordHashCodeTest.java
index b5a21f4..dad3bbb 100644
--- a/src/test/examplesJava17/records/RecordHashCodeTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/RecordHashCodeTest.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 records;
+package com.android.tools.r8.jdk17.records;
import static org.junit.Assume.assumeTrue;
diff --git a/src/test/examplesJava17/records/RecordInstanceOfTest.java b/src/test/java17/com/android/tools/r8/jdk17/records/RecordInstanceOfTest.java
similarity index 98%
rename from src/test/examplesJava17/records/RecordInstanceOfTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/RecordInstanceOfTest.java
index 0fdb15f..7f5f03d 100644
--- a/src/test/examplesJava17/records/RecordInstanceOfTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/RecordInstanceOfTest.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 records;
+package com.android.tools.r8.jdk17.records;
import com.android.tools.r8.JdkClassFileProvider;
import com.android.tools.r8.R8FullTestBuilder;
diff --git a/src/test/examplesJava17/records/RecordInterfaceTest.java b/src/test/java17/com/android/tools/r8/jdk17/records/RecordInterfaceTest.java
similarity index 98%
rename from src/test/examplesJava17/records/RecordInterfaceTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/RecordInterfaceTest.java
index 583ccb4..d7a4d51 100644
--- a/src/test/examplesJava17/records/RecordInterfaceTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/RecordInterfaceTest.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 records;
+package com.android.tools.r8.jdk17.records;
import static org.junit.Assert.assertFalse;
import static org.junit.Assume.assumeTrue;
diff --git a/src/test/examplesJava17/records/RecordInvokeCustom.java b/src/test/java17/com/android/tools/r8/jdk17/records/RecordInvokeCustom.java
similarity index 97%
rename from src/test/examplesJava17/records/RecordInvokeCustom.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/RecordInvokeCustom.java
index c460f56..ec2905f 100644
--- a/src/test/examplesJava17/records/RecordInvokeCustom.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/RecordInvokeCustom.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 records;
+package com.android.tools.r8.jdk17.records;
public class RecordInvokeCustom {
diff --git a/src/test/examplesJava17/records/RecordInvokeCustomSplitDesugaringTest.java b/src/test/java17/com/android/tools/r8/jdk17/records/RecordInvokeCustomSplitDesugaringTest.java
similarity index 94%
rename from src/test/examplesJava17/records/RecordInvokeCustomSplitDesugaringTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/RecordInvokeCustomSplitDesugaringTest.java
index d797244..7f9aa64 100644
--- a/src/test/examplesJava17/records/RecordInvokeCustomSplitDesugaringTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/RecordInvokeCustomSplitDesugaringTest.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 records;
+package com.android.tools.r8.jdk17.records;
import static com.android.tools.r8.DiagnosticsMatcher.diagnosticMessage;
import static com.android.tools.r8.DiagnosticsMatcher.diagnosticType;
@@ -25,8 +25,6 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
-import records.RecordInvokeCustom.Empty;
-import records.RecordInvokeCustom.Person;
@RunWith(Parameterized.class)
public class RecordInvokeCustomSplitDesugaringTest extends TestBase {
@@ -119,9 +117,11 @@
.inspect(
i -> {
minifiedNames[0] =
- extractSimpleFinalName(i, "records.RecordInvokeCustomSplitDesugaringTest$Empty");
+ extractSimpleFinalName(
+ i, RecordInvokeCustomSplitDesugaringTest.Empty.class.getTypeName());
minifiedNames[1] =
- extractSimpleFinalName(i, "records.RecordInvokeCustomSplitDesugaringTest$Person");
+ extractSimpleFinalName(
+ i, RecordInvokeCustomSplitDesugaringTest.Person.class.getTypeName());
})
.run(parameters.getRuntime(), RecordInvokeCustom.class)
.assertSuccessWithOutput(
diff --git a/src/test/examplesJava17/records/RecordInvokeCustomTest.java b/src/test/java17/com/android/tools/r8/jdk17/records/RecordInvokeCustomTest.java
similarity index 98%
rename from src/test/examplesJava17/records/RecordInvokeCustomTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/RecordInvokeCustomTest.java
index 55c9d9c..cb53165 100644
--- a/src/test/examplesJava17/records/RecordInvokeCustomTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/RecordInvokeCustomTest.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 records;
+package com.android.tools.r8.jdk17.records;
import com.android.tools.r8.JdkClassFileProvider;
import com.android.tools.r8.R8FullTestBuilder;
diff --git a/src/test/examplesJava17/records/RecordKeepRules.java b/src/test/java17/com/android/tools/r8/jdk17/records/RecordKeepRules.java
similarity index 93%
rename from src/test/examplesJava17/records/RecordKeepRules.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/RecordKeepRules.java
index a62132f..51d8b1e 100644
--- a/src/test/examplesJava17/records/RecordKeepRules.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/RecordKeepRules.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 records;
+package com.android.tools.r8.jdk17.records;
// The code needs to be completely outside the test for the test to work.
// If these classes are inner classes, age is not correctly simplified to a 42 constant field.
diff --git a/src/test/examplesJava17/records/RecordKeepRulesTest.java b/src/test/java17/com/android/tools/r8/jdk17/records/RecordKeepRulesTest.java
similarity index 90%
rename from src/test/examplesJava17/records/RecordKeepRulesTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/RecordKeepRulesTest.java
index cf864fe..f4a2d9a 100644
--- a/src/test/examplesJava17/records/RecordKeepRulesTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/RecordKeepRulesTest.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 records;
+package com.android.tools.r8.jdk17.records;
import com.android.tools.r8.JdkClassFileProvider;
import com.android.tools.r8.TestBase;
@@ -18,15 +18,15 @@
@RunWith(Parameterized.class)
public class RecordKeepRulesTest extends TestBase {
+ private static final String PERSON = RecordKeepRules.Person.class.getTypeName();
+
private static final String KEEP_RULE_CLASS_NAME =
- "-keep,allowshrinking,allowoptimization class records.RecordKeepRules$Person";
+ "-keep,allowshrinking,allowoptimization class " + PERSON;
private static final String KEEP_RULE_FIELD_NAMES =
- "-keepclassmembers,allowshrinking,allowoptimization class records.RecordKeepRules$Person {"
- + " <fields>; }";
+ "-keepclassmembers,allowshrinking,allowoptimization class " + PERSON + " {" + " <fields>; }";
private static final String KEEP_RULE_FIELDS_NO_NAMES =
- "-keepclassmembers,allowobfuscation class records.RecordKeepRules$Person { <fields>; }";
- private static final String KEEP_RULE_ALL =
- "-keep class records.RecordKeepRules$Person { <fields>; }";
+ "-keepclassmembers,allowobfuscation class " + PERSON + " { <fields>; }";
+ private static final String KEEP_RULE_ALL = "-keep class " + PERSON + " { <fields>; }";
private static final String EXPECTED_RESULT_R8_WITH_CLASS_NAME =
StringUtils.lines("RecordKeepRules$Person[a=Jane Doe]", "RecordKeepRules$Person[a=Bob]");
diff --git a/src/test/examplesJava17/records/RecordLib.java b/src/test/java17/com/android/tools/r8/jdk17/records/RecordLib.java
similarity index 88%
rename from src/test/examplesJava17/records/RecordLib.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/RecordLib.java
index 7f1b149..6a2eb0d 100644
--- a/src/test/examplesJava17/records/RecordLib.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/RecordLib.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 records;
+package com.android.tools.r8.jdk17.records;
public class RecordLib {
diff --git a/src/test/examplesJava17/records/RecordLibMergeTest.java b/src/test/java17/com/android/tools/r8/jdk17/records/RecordLibMergeTest.java
similarity index 83%
rename from src/test/examplesJava17/records/RecordLibMergeTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/RecordLibMergeTest.java
index fd0e655..2c4f49b 100644
--- a/src/test/examplesJava17/records/RecordLibMergeTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/RecordLibMergeTest.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 records;
+package com.android.tools.r8.jdk17.records;
import com.android.tools.r8.JdkClassFileProvider;
import com.android.tools.r8.R8FullTestBuilder;
@@ -19,6 +19,8 @@
@RunWith(Parameterized.class)
public class RecordLibMergeTest extends TestBase {
+ private static final String RECORD_LIB = RecordLib.class.getTypeName();
+
private static final String EXPECTED_RESULT = StringUtils.lines("true", "true");
private final TestParameters parameters;
@@ -43,8 +45,8 @@
testForR8(Backend.CF)
.addProgramClassesAndInnerClasses(RecordLib.class)
.addKeepRules(
- "-keep class records.RecordLib { public static java.lang.Object getRecord(); }")
- .addKeepRules("-keep class records.RecordLib$LibRecord")
+ "-keep class " + RECORD_LIB + " { public static java.lang.Object getRecord(); }")
+ .addKeepRules("-keep class " + RECORD_LIB + "$LibRecord")
.addLibraryProvider(JdkClassFileProvider.fromSystemJdk())
.compile()
.writeToZip();
@@ -54,8 +56,8 @@
.addProgramClassesAndInnerClasses(RecordMain.class)
.setMinApi(parameters)
.addKeepMainRule(RecordMain.class)
- .addKeepRules("-keep class records.RecordLib$LibRecord")
- .addKeepRules("-keep class records.RecordMain$MainRecord");
+ .addKeepRules("-keep class " + RECORD_LIB + "$LibRecord")
+ .addKeepRules("-keep class " + RecordMain.MainRecord.class.getTypeName());
if (parameters.isCfRuntime()) {
builder
.addLibraryProvider(JdkClassFileProvider.fromSystemJdk())
diff --git a/src/test/examplesJava17/records/RecordMain.java b/src/test/java17/com/android/tools/r8/jdk17/records/RecordMain.java
similarity index 91%
rename from src/test/examplesJava17/records/RecordMain.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/RecordMain.java
index dcca88e..075f5a0 100644
--- a/src/test/examplesJava17/records/RecordMain.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/RecordMain.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 records;
+package com.android.tools.r8.jdk17.records;
public class RecordMain {
diff --git a/src/test/examplesJava17/records/RecordMergeTest.java b/src/test/java17/com/android/tools/r8/jdk17/records/RecordMergeTest.java
similarity index 99%
rename from src/test/examplesJava17/records/RecordMergeTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/RecordMergeTest.java
index 4153e38..f4bfaa2 100644
--- a/src/test/examplesJava17/records/RecordMergeTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/RecordMergeTest.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 records;
+package com.android.tools.r8.jdk17.records;
import static com.android.tools.r8.DiagnosticsMatcher.diagnosticType;
import static com.android.tools.r8.utils.codeinspector.Matchers.isAbsent;
diff --git a/src/test/examplesJava17/records/RecordOnlyReferencedFromCodeTest.java b/src/test/java17/com/android/tools/r8/jdk17/records/RecordOnlyReferencedFromCodeTest.java
similarity index 97%
rename from src/test/examplesJava17/records/RecordOnlyReferencedFromCodeTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/RecordOnlyReferencedFromCodeTest.java
index 8219729..82c3935 100644
--- a/src/test/examplesJava17/records/RecordOnlyReferencedFromCodeTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/RecordOnlyReferencedFromCodeTest.java
@@ -1,7 +1,7 @@
// Copyright (c) 2025, 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;
+package com.android.tools.r8.jdk17.records;
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestParameters;
diff --git a/src/test/examplesJava17/records/RecordProfileRewritingTest.java b/src/test/java17/com/android/tools/r8/jdk17/records/RecordProfileRewritingTest.java
similarity index 99%
rename from src/test/examplesJava17/records/RecordProfileRewritingTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/RecordProfileRewritingTest.java
index 13c487d..8b64f08 100644
--- a/src/test/examplesJava17/records/RecordProfileRewritingTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/RecordProfileRewritingTest.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 records;
+package com.android.tools.r8.jdk17.records;
import static com.android.tools.r8.ir.desugar.records.RecordFullInstructionDesugaring.EQUALS_RECORD_METHOD_NAME;
import static com.android.tools.r8.ir.desugar.records.RecordFullInstructionDesugaring.GET_FIELDS_AS_OBJECTS_METHOD_NAME;
@@ -264,7 +264,7 @@
ClassSubject hashCodeHelperClassSubject =
inspector.clazz(
SyntheticItemsTestUtils.syntheticRecordHelperClass(
- PERSON_REFERENCE, objectsHashCodeClassSubject.isAbsent() ? 0 : 2));
+ PERSON_REFERENCE, objectsHashCodeClassSubject.isAbsent() ? 1 : 3));
assertThat(hashCodeHelperClassSubject, isAbsentIf(recordDesugaringIsOff));
MethodSubject hashCodeHelperMethodSubject = hashCodeHelperClassSubject.uniqueMethod();
@@ -281,7 +281,7 @@
ClassSubject toStringHelperClassSubject =
inspector.clazz(
SyntheticItemsTestUtils.syntheticRecordHelperClass(
- PERSON_REFERENCE, objectsHashCodeClassSubject.isAbsent() ? 1 : 3));
+ PERSON_REFERENCE, objectsHashCodeClassSubject.isAbsent() ? 0 : 2));
assertThat(toStringHelperClassSubject, isAbsentIf(recordDesugaringIsOff));
MethodSubject toStringHelperMethodSubject = toStringHelperClassSubject.uniqueMethod();
diff --git a/src/test/examplesJava17/records/RecordReflectionTest.java b/src/test/java17/com/android/tools/r8/jdk17/records/RecordReflectionTest.java
similarity index 98%
rename from src/test/examplesJava17/records/RecordReflectionTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/RecordReflectionTest.java
index bab9fb7..948066c 100644
--- a/src/test/examplesJava17/records/RecordReflectionTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/RecordReflectionTest.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 records;
+package com.android.tools.r8.jdk17.records;
import com.android.tools.r8.JdkClassFileProvider;
import com.android.tools.r8.TestBase;
diff --git a/src/test/examplesJava17/records/RecordShrinkFieldTest.java b/src/test/java17/com/android/tools/r8/jdk17/records/RecordShrinkFieldTest.java
similarity index 98%
rename from src/test/examplesJava17/records/RecordShrinkFieldTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/RecordShrinkFieldTest.java
index 232f02f..1a51412 100644
--- a/src/test/examplesJava17/records/RecordShrinkFieldTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/RecordShrinkFieldTest.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 records;
+package com.android.tools.r8.jdk17.records;
import static org.junit.Assert.assertEquals;
diff --git a/src/test/examplesJava17/records/RecordTestUtils.java b/src/test/java17/com/android/tools/r8/jdk17/records/RecordTestUtils.java
similarity index 96%
rename from src/test/examplesJava17/records/RecordTestUtils.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/RecordTestUtils.java
index 6c501c0..d078416 100644
--- a/src/test/examplesJava17/records/RecordTestUtils.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/RecordTestUtils.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 records;
+package com.android.tools.r8.jdk17.records;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
diff --git a/src/test/examplesJava17/records/RecordWithMembersTest.java b/src/test/java17/com/android/tools/r8/jdk17/records/RecordWithMembersTest.java
similarity index 98%
rename from src/test/examplesJava17/records/RecordWithMembersTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/RecordWithMembersTest.java
index 41d36ea..b97d67f 100644
--- a/src/test/examplesJava17/records/RecordWithMembersTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/RecordWithMembersTest.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 records;
+package com.android.tools.r8.jdk17.records;
import com.android.tools.r8.JdkClassFileProvider;
import com.android.tools.r8.R8FullTestBuilder;
diff --git a/src/test/examplesJava17/records/RecordWithNonMaterializableConstClassTest.java b/src/test/java17/com/android/tools/r8/jdk17/records/RecordWithNonMaterializableConstClassTest.java
similarity index 95%
rename from src/test/examplesJava17/records/RecordWithNonMaterializableConstClassTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/RecordWithNonMaterializableConstClassTest.java
index 4cda982..08a8deb 100644
--- a/src/test/examplesJava17/records/RecordWithNonMaterializableConstClassTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/RecordWithNonMaterializableConstClassTest.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 records;
+package com.android.tools.r8.jdk17.records;
import com.android.tools.r8.JdkClassFileProvider;
import com.android.tools.r8.R8FullTestBuilder;
@@ -10,6 +10,7 @@
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestParametersCollection;
import com.android.tools.r8.TestRuntime.CfVm;
+import com.android.tools.r8.jdk17.records.differentpackage.PrivateConstClass;
import com.android.tools.r8.utils.StringUtils;
import java.nio.file.Path;
import org.junit.Test;
@@ -17,13 +18,12 @@
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameter;
import org.junit.runners.Parameterized.Parameters;
-import records.differentpackage.PrivateConstClass;
@RunWith(Parameterized.class)
public class RecordWithNonMaterializableConstClassTest extends TestBase {
private static final String PRIVATE_CLASS_NAME =
- "records.differentpackage.PrivateConstClass$PrivateClass";
+ PrivateConstClass.class.getTypeName() + "$PrivateClass";
private static final Class<?> EXTRA_DATA = PrivateConstClass.class;
private static final String EXPECTED_RESULT_FORMAT =
StringUtils.lines("%s[%s=class " + PRIVATE_CLASS_NAME + "]");
diff --git a/src/test/examplesJava17/records/SimpleRecordTest.java b/src/test/java17/com/android/tools/r8/jdk17/records/SimpleRecordTest.java
similarity index 99%
rename from src/test/examplesJava17/records/SimpleRecordTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/SimpleRecordTest.java
index cfedd02..0af4aec 100644
--- a/src/test/examplesJava17/records/SimpleRecordTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/SimpleRecordTest.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 records;
+package com.android.tools.r8.jdk17.records;
import static org.junit.Assume.assumeFalse;
import static org.junit.Assume.assumeTrue;
diff --git a/src/test/examplesJava17/records/UnusedRecordFieldTest.java b/src/test/java17/com/android/tools/r8/jdk17/records/UnusedRecordFieldTest.java
similarity index 95%
rename from src/test/examplesJava17/records/UnusedRecordFieldTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/UnusedRecordFieldTest.java
index 0de5cba..477062e 100644
--- a/src/test/examplesJava17/records/UnusedRecordFieldTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/UnusedRecordFieldTest.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 records;
+package com.android.tools.r8.jdk17.records;
import com.android.tools.r8.JdkClassFileProvider;
import com.android.tools.r8.R8FullTestBuilder;
@@ -59,7 +59,7 @@
testForR8(parameters.getBackend())
.addInnerClassesAndStrippedOuter(getClass())
.setMinApi(parameters)
- .addKeepRules("-keep class records.UnusedRecordFieldTest$UnusedRecordField { *; }")
+ .addKeepClassAndMembersRules(UnusedRecordFieldTest.UnusedRecordField.class)
.addKeepMainRule(UnusedRecordField.class);
if (parameters.isCfRuntime()) {
builder
diff --git a/src/test/examplesJava17/records/UnusedRecordMethodTest.java b/src/test/java17/com/android/tools/r8/jdk17/records/UnusedRecordMethodTest.java
similarity index 95%
rename from src/test/examplesJava17/records/UnusedRecordMethodTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/UnusedRecordMethodTest.java
index 9f8bd26..547b4f3 100644
--- a/src/test/examplesJava17/records/UnusedRecordMethodTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/UnusedRecordMethodTest.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 records;
+package com.android.tools.r8.jdk17.records;
import com.android.tools.r8.JdkClassFileProvider;
import com.android.tools.r8.R8FullTestBuilder;
@@ -60,7 +60,7 @@
testForR8(parameters.getBackend())
.addInnerClassesAndStrippedOuter(getClass())
.setMinApi(parameters)
- .addKeepRules("-keep class records.UnusedRecordMethodTest$UnusedRecordMethod { *; }")
+ .addKeepClassAndMembersRules(UnusedRecordMethodTest.UnusedRecordMethod.class)
.addKeepMainRule(UnusedRecordMethod.class);
if (parameters.isCfRuntime()) {
builder
diff --git a/src/test/examplesJava17/records/UnusedRecordReflectionTest.java b/src/test/java17/com/android/tools/r8/jdk17/records/UnusedRecordReflectionTest.java
similarity index 95%
rename from src/test/examplesJava17/records/UnusedRecordReflectionTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/UnusedRecordReflectionTest.java
index 2caa702..d320c5e 100644
--- a/src/test/examplesJava17/records/UnusedRecordReflectionTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/UnusedRecordReflectionTest.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 records;
+package com.android.tools.r8.jdk17.records;
import com.android.tools.r8.JdkClassFileProvider;
import com.android.tools.r8.R8FullTestBuilder;
@@ -61,8 +61,7 @@
testForR8(parameters.getBackend())
.addInnerClassesAndStrippedOuter(getClass())
.setMinApi(parameters)
- .addKeepRules(
- "-keep class records.UnusedRecordReflectionTest$UnusedRecordReflection { *; }")
+ .addKeepClassAndMembersRules(UnusedRecordReflectionTest.UnusedRecordReflection.class)
.addKeepMainRule(UnusedRecordReflection.class);
if (parameters.isCfRuntime()) {
builder
diff --git a/src/test/examplesJava17/records/differentpackage/PrivateConstClass.java b/src/test/java17/com/android/tools/r8/jdk17/records/differentpackage/PrivateConstClass.java
similarity index 85%
rename from src/test/examplesJava17/records/differentpackage/PrivateConstClass.java
rename to src/test/java17/com/android/tools/r8/jdk17/records/differentpackage/PrivateConstClass.java
index fbf93c6..cc657e7 100644
--- a/src/test/examplesJava17/records/differentpackage/PrivateConstClass.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/differentpackage/PrivateConstClass.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 records.differentpackage;
+package com.android.tools.r8.jdk17.records.differentpackage;
public class PrivateConstClass {
diff --git a/src/test/examplesJava17/sealed/Compiler.java b/src/test/java17/com/android/tools/r8/jdk17/sealed/Compiler.java
similarity index 70%
rename from src/test/examplesJava17/sealed/Compiler.java
rename to src/test/java17/com/android/tools/r8/jdk17/sealed/Compiler.java
index 8d29eea..6107c55 100644
--- a/src/test/examplesJava17/sealed/Compiler.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/sealed/Compiler.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 sealed;
+package com.android.tools.r8.jdk17.sealed;
-public sealed abstract class Compiler permits R8Compiler, D8Compiler {
+public abstract sealed class Compiler permits R8Compiler, D8Compiler {
public abstract void run();
}
\ No newline at end of file
diff --git a/src/test/examplesJava17/sealed/D8Compiler.java b/src/test/java17/com/android/tools/r8/jdk17/sealed/D8Compiler.java
similarity index 88%
rename from src/test/examplesJava17/sealed/D8Compiler.java
rename to src/test/java17/com/android/tools/r8/jdk17/sealed/D8Compiler.java
index e86df73..d7a532b 100644
--- a/src/test/examplesJava17/sealed/D8Compiler.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/sealed/D8Compiler.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 sealed;
+package com.android.tools.r8.jdk17.sealed;
public final class D8Compiler extends Compiler {
diff --git a/src/test/examplesJava17/sealed/Helper.java b/src/test/java17/com/android/tools/r8/jdk17/sealed/Helper.java
similarity index 84%
rename from src/test/examplesJava17/sealed/Helper.java
rename to src/test/java17/com/android/tools/r8/jdk17/sealed/Helper.java
index eacda06..9254a37 100644
--- a/src/test/examplesJava17/sealed/Helper.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/sealed/Helper.java
@@ -1,4 +1,4 @@
-package sealed;
+package com.android.tools.r8.jdk17.sealed;
import com.google.common.collect.ImmutableList;
import java.util.List;
diff --git a/src/test/examplesJava17/sealed/Main.java b/src/test/java17/com/android/tools/r8/jdk17/sealed/Main.java
similarity index 88%
rename from src/test/examplesJava17/sealed/Main.java
rename to src/test/java17/com/android/tools/r8/jdk17/sealed/Main.java
index f163a21..2a2bdc2 100644
--- a/src/test/examplesJava17/sealed/Main.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/sealed/Main.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 sealed;
+package com.android.tools.r8.jdk17.sealed;
public class Main {
diff --git a/src/test/examplesJava17/sealed/R8Compiler.java b/src/test/java17/com/android/tools/r8/jdk17/sealed/R8Compiler.java
similarity index 88%
rename from src/test/examplesJava17/sealed/R8Compiler.java
rename to src/test/java17/com/android/tools/r8/jdk17/sealed/R8Compiler.java
index 72a522a..d337686 100644
--- a/src/test/examplesJava17/sealed/R8Compiler.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/sealed/R8Compiler.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 sealed;
+package com.android.tools.r8.jdk17.sealed;
public final class R8Compiler extends Compiler {
diff --git a/src/test/examplesJava17/sealed/SealedClassesClasspathTest.java b/src/test/java17/com/android/tools/r8/jdk17/sealed/SealedClassesClasspathTest.java
similarity index 93%
rename from src/test/examplesJava17/sealed/SealedClassesClasspathTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/sealed/SealedClassesClasspathTest.java
index c1d8e26..01c3cfb 100644
--- a/src/test/examplesJava17/sealed/SealedClassesClasspathTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/sealed/SealedClassesClasspathTest.java
@@ -1,8 +1,9 @@
-package sealed; // Copyright (c) 2022, the R8 project authors. Please see the AUTHORS file
-
+// 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.jdk17.sealed;
+
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestCompilerBuilder;
import com.android.tools.r8.TestParameters;
diff --git a/src/test/examplesJava17/sealed/SealedClassesJdk17CompiledTest.java b/src/test/java17/com/android/tools/r8/jdk17/sealed/SealedClassesJdk17CompiledTest.java
similarity index 94%
rename from src/test/examplesJava17/sealed/SealedClassesJdk17CompiledTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/sealed/SealedClassesJdk17CompiledTest.java
index 6dfc18f..32b953e 100644
--- a/src/test/examplesJava17/sealed/SealedClassesJdk17CompiledTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/sealed/SealedClassesJdk17CompiledTest.java
@@ -1,8 +1,9 @@
-package sealed; // Copyright (c) 2020, the R8 project authors. Please see the AUTHORS file
-
+// 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.jdk17.sealed;
+
import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
import static junit.framework.Assert.assertEquals;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -92,7 +93,7 @@
keepPermittedSubclassesAttribute,
TestShrinkerBuilder::addKeepAttributePermittedSubclasses)
.addKeepPermittedSubclasses(Compiler.class)
- .addKeepRules("-keep,allowobfuscation class * extends sealed.Compiler")
+ .addKeepRules("-keep,allowobfuscation class * extends " + Compiler.class.getTypeName())
.addKeepMainRule(Main.class)
.compile()
.inspect(this::inspect)
diff --git a/src/test/examplesJava17/sealed/SealedClassesLibraryTest.java b/src/test/java17/com/android/tools/r8/jdk17/sealed/SealedClassesLibraryTest.java
similarity index 93%
rename from src/test/examplesJava17/sealed/SealedClassesLibraryTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/sealed/SealedClassesLibraryTest.java
index 617ea4e..a80db80 100644
--- a/src/test/examplesJava17/sealed/SealedClassesLibraryTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/sealed/SealedClassesLibraryTest.java
@@ -1,8 +1,9 @@
-package sealed; // Copyright (c) 2022, the R8 project authors. Please see the AUTHORS file
-
+// 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.jdk17.sealed;
+
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestCompilerBuilder;
import com.android.tools.r8.TestParameters;
diff --git a/src/test/examplesJava17/string/StringBuilderWithAppendOutOfBoundsTest.java b/src/test/java17/com/android/tools/r8/jdk17/string/StringBuilderWithAppendOutOfBoundsTest.java
similarity index 97%
rename from src/test/examplesJava17/string/StringBuilderWithAppendOutOfBoundsTest.java
rename to src/test/java17/com/android/tools/r8/jdk17/string/StringBuilderWithAppendOutOfBoundsTest.java
index cb3e379..502d922 100644
--- a/src/test/examplesJava17/string/StringBuilderWithAppendOutOfBoundsTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/string/StringBuilderWithAppendOutOfBoundsTest.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 string;
+package com.android.tools.r8.jdk17.string;
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestParameters;