Move some example tests to new test infra.
This moves constants, controlflow and conversions.
Bug: b/167145686
Change-Id: I8319e983f41d573c1fc2e65016ecd5efdd2a6ea7
diff --git a/src/test/java/com/android/tools/r8/R8RunExamplesTest.java b/src/test/java/com/android/tools/r8/R8RunExamplesTest.java
index c2a1ba2..e2b1b04 100644
--- a/src/test/java/com/android/tools/r8/R8RunExamplesTest.java
+++ b/src/test/java/com/android/tools/r8/R8RunExamplesTest.java
@@ -26,9 +26,6 @@
public static Collection<String[]> data() {
String[] tests = {
"arithmetic.Arithmetic",
- "constants.Constants",
- "controlflow.ControlFlow",
- "conversions.Conversions",
"floating_point_annotations.FloatingPointValuedAnnotationTest",
"filledarray.FilledArray",
"hello.Hello",
diff --git a/src/test/java/com/android/tools/r8/debug/ExamplesDebugTest.java b/src/test/java/com/android/tools/r8/debug/ExamplesDebugTest.java
index 563fc09..3e716f0 100644
--- a/src/test/java/com/android/tools/r8/debug/ExamplesDebugTest.java
+++ b/src/test/java/com/android/tools/r8/debug/ExamplesDebugTest.java
@@ -60,21 +60,6 @@
}
@Test
- public void testConstants() throws Exception {
- testDebugging("constants", "Constants");
- }
-
- @Test
- public void testControlFlow() throws Exception {
- testDebugging("controlflow", "ControlFlow");
- }
-
- @Test
- public void testConversions() throws Exception {
- testDebugging("conversions", "Conversions");
- }
-
- @Test
public void testFloatingPointValuedAnnotation() throws Exception {
testDebugging("floating_point_annotations", "FloatingPointValuedAnnotationTest");
}
diff --git a/src/test/examples/constants/Constants.java b/src/test/java/com/android/tools/r8/examples/constants/Constants.java
similarity index 97%
rename from src/test/examples/constants/Constants.java
rename to src/test/java/com/android/tools/r8/examples/constants/Constants.java
index 6349749..83aed19 100644
--- a/src/test/examples/constants/Constants.java
+++ b/src/test/java/com/android/tools/r8/examples/constants/Constants.java
@@ -4,7 +4,7 @@
// This code is not run directly. It needs to be compiled to dex code.
// 'constants.dex' is what is run.
-package constants;
+package com.android.tools.r8.examples.constants;
class Constants {
diff --git a/src/test/java/com/android/tools/r8/examples/constants/ConstantsTestRunner.java b/src/test/java/com/android/tools/r8/examples/constants/ConstantsTestRunner.java
new file mode 100644
index 0000000..40432f5
--- /dev/null
+++ b/src/test/java/com/android/tools/r8/examples/constants/ConstantsTestRunner.java
@@ -0,0 +1,56 @@
+// 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.examples.constants;
+
+import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.TestParametersCollection;
+import com.android.tools.r8.examples.ExamplesTestBase;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+@RunWith(Parameterized.class)
+public class ConstantsTestRunner extends ExamplesTestBase {
+
+ @Parameterized.Parameters(name = "{0}")
+ public static TestParametersCollection data() {
+ return getTestParameters().withAllRuntimesAndApiLevels().enableApiLevelsForCf().build();
+ }
+
+ public ConstantsTestRunner(TestParameters parameters) {
+ super(parameters);
+ }
+
+ @Override
+ public Class<?> getMainClass() {
+ return Constants.class;
+ }
+
+ @Override
+ public String getExpected() {
+ return "-8-1017-32768-9832767-65536-26843545625165824015728640983040-214748364865536-3276932768"
+ + "-65535-26843545525165824115728641983041-214748364765537-32768-10132767-32769"
+ + "-2147483648214748364732768-281474976710656"
+ + "-11529215046068469761080863910568919040675539944105574404222124650659840"
+ + "-92233720368547758082814749767106569223090561878065152-21474836492147483648"
+ + "-140737488355329-281474976710655"
+ + "-11529215046068469751080863910568919041675539944105574414222124650659841"
+ + "-922337203685477580728147497671065792233720368547758079223090561878065153";
+ }
+
+ @Test
+ public void testDesugaring() throws Exception {
+ runTestDesugaring();
+ }
+
+ @Test
+ public void testR8() throws Exception {
+ runTestR8();
+ }
+
+ @Test
+ public void testDebug() throws Exception {
+ runTestDebugComparator();
+ }
+}
diff --git a/src/test/examples/controlflow/ControlFlow.java b/src/test/java/com/android/tools/r8/examples/controlflow/ControlFlow.java
similarity index 97%
rename from src/test/examples/controlflow/ControlFlow.java
rename to src/test/java/com/android/tools/r8/examples/controlflow/ControlFlow.java
index ffdabe0..5296c77 100644
--- a/src/test/examples/controlflow/ControlFlow.java
+++ b/src/test/java/com/android/tools/r8/examples/controlflow/ControlFlow.java
@@ -5,7 +5,7 @@
// This code is not run directly. It needs to be compiled to dex code.
// 'controlflow.dex' is what is run.
-package controlflow;
+package com.android.tools.r8.examples.controlflow;
public class ControlFlow {
diff --git a/src/test/java/com/android/tools/r8/examples/controlflow/ControlFlowTestRunner.java b/src/test/java/com/android/tools/r8/examples/controlflow/ControlFlowTestRunner.java
new file mode 100644
index 0000000..770ec02
--- /dev/null
+++ b/src/test/java/com/android/tools/r8/examples/controlflow/ControlFlowTestRunner.java
@@ -0,0 +1,82 @@
+// 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.examples.controlflow;
+
+import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.TestParametersCollection;
+import com.android.tools.r8.examples.ExamplesTestBase;
+import com.android.tools.r8.utils.StringUtils;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+@RunWith(Parameterized.class)
+public class ControlFlowTestRunner extends ExamplesTestBase {
+
+ @Parameterized.Parameters(name = "{0}")
+ public static TestParametersCollection data() {
+ return getTestParameters().withAllRuntimesAndApiLevels().enableApiLevelsForCf().build();
+ }
+
+ public ControlFlowTestRunner(TestParameters parameters) {
+ super(parameters);
+ }
+
+ @Override
+ public Class<?> getMainClass() {
+ return ControlFlow.class;
+ }
+
+ @Override
+ public String getExpected() {
+ return StringUtils.lines(
+ "Fisk",
+ "Hest",
+ "Fisk 1 1.1 true",
+ "Hest 2 2.2 false",
+ "Fisk",
+ "Hep!",
+ "10",
+ "10",
+ "5",
+ "10",
+ "5",
+ "2",
+ "10",
+ "10",
+ "5",
+ "10",
+ "5",
+ "2",
+ "simpleLoop",
+ "simpleLoop",
+ "count: 0",
+ "simpleLoop",
+ "count: 0",
+ "count: 1",
+ "count: 2",
+ "count: 3",
+ "count: 4",
+ "count: 5",
+ "count: 6",
+ "count: 7",
+ "count: 8",
+ "count: 9");
+ }
+
+ @Test
+ public void testDesugaring() throws Exception {
+ runTestDesugaring();
+ }
+
+ @Test
+ public void testR8() throws Exception {
+ runTestR8();
+ }
+
+ @Test
+ public void testDebug() throws Exception {
+ runTestDebugComparator();
+ }
+}
diff --git a/src/test/examples/conversions/Conversions.java b/src/test/java/com/android/tools/r8/examples/conversions/Conversions.java
similarity index 96%
rename from src/test/examples/conversions/Conversions.java
rename to src/test/java/com/android/tools/r8/examples/conversions/Conversions.java
index 456972d..28f3c55 100644
--- a/src/test/examples/conversions/Conversions.java
+++ b/src/test/java/com/android/tools/r8/examples/conversions/Conversions.java
@@ -1,7 +1,7 @@
// Copyright (c) 2016, 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 conversions;
+package com.android.tools.r8.examples.conversions;
public class Conversions {
diff --git a/src/test/java/com/android/tools/r8/examples/conversions/ConversionsTestRunner.java b/src/test/java/com/android/tools/r8/examples/conversions/ConversionsTestRunner.java
new file mode 100644
index 0000000..15ccd76
--- /dev/null
+++ b/src/test/java/com/android/tools/r8/examples/conversions/ConversionsTestRunner.java
@@ -0,0 +1,51 @@
+// 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.examples.conversions;
+
+import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.TestParametersCollection;
+import com.android.tools.r8.examples.ExamplesTestBase;
+import com.android.tools.r8.utils.StringUtils;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+@RunWith(Parameterized.class)
+public class ConversionsTestRunner extends ExamplesTestBase {
+
+ @Parameterized.Parameters(name = "{0}")
+ public static TestParametersCollection data() {
+ return getTestParameters().withAllRuntimesAndApiLevels().enableApiLevelsForCf().build();
+ }
+
+ public ConversionsTestRunner(TestParameters parameters) {
+ super(parameters);
+ }
+
+ @Override
+ public Class<?> getMainClass() {
+ return Conversions.class;
+ }
+
+ @Override
+ public String getExpected() {
+ return StringUtils.lines(
+ "1", "1.0", "1.0", "1", "1.0", "1.0", "1", "1", "1.0", "1", "1", "1.0", "1", "\u0001", "1");
+ }
+
+ @Test
+ public void testDesugaring() throws Exception {
+ runTestDesugaring();
+ }
+
+ @Test
+ public void testR8() throws Exception {
+ runTestR8();
+ }
+
+ @Test
+ public void testDebug() throws Exception {
+ runTestDebugComparator();
+ }
+}