Move BufferCovariantReturnType test to java 11 package
Change-Id: Ib3850ce9735dc949bb42277cd571abcafc6d877b
diff --git a/src/test/examplesJava11/buffercovariantreturntype/BufferCovariantReturnTypeMain.java b/src/test/examplesJava11/buffercovariantreturntype/BufferCovariantReturnTypeMain.java
deleted file mode 100644
index 67079a5..0000000
--- a/src/test/examplesJava11/buffercovariantreturntype/BufferCovariantReturnTypeMain.java
+++ /dev/null
@@ -1,377 +0,0 @@
-// Copyright (c) 2021, the R8 project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-package buffercovariantreturntype;
-
-import java.nio.Buffer;
-import java.nio.ByteBuffer;
-import java.nio.CharBuffer;
-import java.nio.DoubleBuffer;
-import java.nio.FloatBuffer;
-import java.nio.IntBuffer;
-import java.nio.LongBuffer;
-import java.nio.ShortBuffer;
-
-public class BufferCovariantReturnTypeMain {
-
- public static void main(String[] args) {
- byteBufferTest();
- charBufferTest();
- shortBufferTest();
- intBufferTest();
- longBufferTest();
- floatBufferTest();
- doubleBufferTest();
- }
-
- static void byteBufferTest() {
- byte[] data = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
- byte putValue = 55;
-
- ByteBuffer directBuffer = ByteBuffer.wrap(data);
- Buffer indirectBuffer = ByteBuffer.wrap(data);
- ByteBuffer castedIndirectBuffer = (ByteBuffer) indirectBuffer;
-
- directBuffer = directBuffer.position(5);
- System.out.println(directBuffer.position()); // 5
- directBuffer = directBuffer.limit(7);
- System.out.println(directBuffer.remaining()); // 2
- directBuffer = directBuffer.mark().put(putValue).put(putValue).reset();
- System.out.println(directBuffer.position()); // 5
- directBuffer = directBuffer.clear();
- System.out.println(directBuffer.position()); // 0
- System.out.println(directBuffer.remaining()); // 16
- directBuffer.put(putValue);
- directBuffer.put(putValue);
- directBuffer = directBuffer.rewind();
- System.out.println(directBuffer.position()); // 0
- directBuffer.put(putValue);
- directBuffer.put(putValue);
- directBuffer = directBuffer.flip();
- System.out.println(directBuffer.position()); // 0
- System.out.println(directBuffer.remaining()); // 2
-
- indirectBuffer = indirectBuffer.position(5);
- System.out.println(indirectBuffer.position()); // 5
- indirectBuffer = indirectBuffer.limit(7);
- System.out.println(indirectBuffer.remaining()); // 2
- indirectBuffer = indirectBuffer.mark();
- castedIndirectBuffer.put(putValue);
- castedIndirectBuffer.put(putValue);
- indirectBuffer = indirectBuffer.reset();
- System.out.println(indirectBuffer.position()); // 5
- indirectBuffer = indirectBuffer.clear();
- System.out.println(indirectBuffer.position()); // 0
- System.out.println(indirectBuffer.remaining()); // 16
- castedIndirectBuffer.put(putValue);
- castedIndirectBuffer.put(putValue);
- indirectBuffer = indirectBuffer.rewind();
- System.out.println(indirectBuffer.position()); // 0
- castedIndirectBuffer.put(putValue);
- castedIndirectBuffer.put(putValue);
- indirectBuffer = indirectBuffer.flip();
- System.out.println(indirectBuffer.position()); // 0
- System.out.println(indirectBuffer.remaining()); // 2
- }
-
- static void charBufferTest() {
- char[] data = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
- char putValue = 55;
-
- CharBuffer directBuffer = CharBuffer.wrap(data);
- Buffer indirectBuffer = CharBuffer.wrap(data);
- CharBuffer castedIndirectBuffer = (CharBuffer) indirectBuffer;
-
- directBuffer = directBuffer.position(5);
- System.out.println(directBuffer.position()); // 5
- directBuffer = directBuffer.limit(7);
- System.out.println(directBuffer.remaining()); // 2
- directBuffer = directBuffer.mark().put(putValue).put(putValue).reset();
- System.out.println(directBuffer.position()); // 5
- directBuffer = directBuffer.clear();
- System.out.println(directBuffer.position()); // 0
- System.out.println(directBuffer.remaining()); // 16
- directBuffer.put(putValue);
- directBuffer.put(putValue);
- directBuffer = directBuffer.rewind();
- System.out.println(directBuffer.position()); // 0
- directBuffer.put(putValue);
- directBuffer.put(putValue);
- directBuffer = directBuffer.flip();
- System.out.println(directBuffer.position()); // 0
- System.out.println(directBuffer.remaining()); // 2
-
- indirectBuffer = indirectBuffer.position(5);
- System.out.println(indirectBuffer.position()); // 5
- indirectBuffer = indirectBuffer.limit(7);
- System.out.println(indirectBuffer.remaining()); // 2
- indirectBuffer = indirectBuffer.mark();
- castedIndirectBuffer.put(putValue);
- castedIndirectBuffer.put(putValue);
- indirectBuffer = indirectBuffer.reset();
- System.out.println(indirectBuffer.position()); // 5
- indirectBuffer = indirectBuffer.clear();
- System.out.println(indirectBuffer.position()); // 0
- System.out.println(indirectBuffer.remaining()); // 16
- castedIndirectBuffer.put(putValue);
- castedIndirectBuffer.put(putValue);
- indirectBuffer = indirectBuffer.rewind();
- System.out.println(indirectBuffer.position()); // 0
- castedIndirectBuffer.put(putValue);
- castedIndirectBuffer.put(putValue);
- indirectBuffer = indirectBuffer.flip();
- System.out.println(indirectBuffer.position()); // 0
- System.out.println(indirectBuffer.remaining()); // 2
- }
-
- static void shortBufferTest() {
- short[] data = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
- short putValue = 55;
-
- ShortBuffer directBuffer = ShortBuffer.wrap(data);
- Buffer indirectBuffer = ShortBuffer.wrap(data);
- ShortBuffer castedIndirectBuffer = (ShortBuffer) indirectBuffer;
-
- directBuffer = directBuffer.position(5);
- System.out.println(directBuffer.position()); // 5
- directBuffer = directBuffer.limit(7);
- System.out.println(directBuffer.remaining()); // 2
- directBuffer = directBuffer.mark().put(putValue).put(putValue).reset();
- System.out.println(directBuffer.position()); // 5
- directBuffer = directBuffer.clear();
- System.out.println(directBuffer.position()); // 0
- System.out.println(directBuffer.remaining()); // 16
- directBuffer.put(putValue);
- directBuffer.put(putValue);
- directBuffer = directBuffer.rewind();
- System.out.println(directBuffer.position()); // 0
- directBuffer.put(putValue);
- directBuffer.put(putValue);
- directBuffer = directBuffer.flip();
- System.out.println(directBuffer.position()); // 0
- System.out.println(directBuffer.remaining()); // 2
-
- indirectBuffer = indirectBuffer.position(5);
- System.out.println(indirectBuffer.position()); // 5
- indirectBuffer = indirectBuffer.limit(7);
- System.out.println(indirectBuffer.remaining()); // 2
- indirectBuffer = indirectBuffer.mark();
- castedIndirectBuffer.put(putValue);
- castedIndirectBuffer.put(putValue);
- indirectBuffer = indirectBuffer.reset();
- System.out.println(indirectBuffer.position()); // 5
- indirectBuffer = indirectBuffer.clear();
- System.out.println(indirectBuffer.position()); // 0
- System.out.println(indirectBuffer.remaining()); // 16
- castedIndirectBuffer.put(putValue);
- castedIndirectBuffer.put(putValue);
- indirectBuffer = indirectBuffer.rewind();
- System.out.println(indirectBuffer.position()); // 0
- castedIndirectBuffer.put(putValue);
- castedIndirectBuffer.put(putValue);
- indirectBuffer = indirectBuffer.flip();
- System.out.println(indirectBuffer.position()); // 0
- System.out.println(indirectBuffer.remaining()); // 2
- }
-
- static void intBufferTest() {
- int[] data = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
- int putValue = 55;
-
- IntBuffer directBuffer = IntBuffer.wrap(data);
- Buffer indirectBuffer = IntBuffer.wrap(data);
- IntBuffer castedIndirectBuffer = (IntBuffer) indirectBuffer;
-
- directBuffer = directBuffer.position(5);
- System.out.println(directBuffer.position()); // 5
- directBuffer = directBuffer.limit(7);
- System.out.println(directBuffer.remaining()); // 2
- directBuffer = directBuffer.mark().put(putValue).put(putValue).reset();
- System.out.println(directBuffer.position()); // 5
- directBuffer = directBuffer.clear();
- System.out.println(directBuffer.position()); // 0
- System.out.println(directBuffer.remaining()); // 16
- directBuffer.put(putValue);
- directBuffer.put(putValue);
- directBuffer = directBuffer.rewind();
- System.out.println(directBuffer.position()); // 0
- directBuffer.put(putValue);
- directBuffer.put(putValue);
- directBuffer = directBuffer.flip();
- System.out.println(directBuffer.position()); // 0
- System.out.println(directBuffer.remaining()); // 2
-
- indirectBuffer = indirectBuffer.position(5);
- System.out.println(indirectBuffer.position()); // 5
- indirectBuffer = indirectBuffer.limit(7);
- System.out.println(indirectBuffer.remaining()); // 2
- indirectBuffer = indirectBuffer.mark();
- castedIndirectBuffer.put(putValue);
- castedIndirectBuffer.put(putValue);
- indirectBuffer = indirectBuffer.reset();
- System.out.println(indirectBuffer.position()); // 5
- indirectBuffer = indirectBuffer.clear();
- System.out.println(indirectBuffer.position()); // 0
- System.out.println(indirectBuffer.remaining()); // 16
- castedIndirectBuffer.put(putValue);
- castedIndirectBuffer.put(putValue);
- indirectBuffer = indirectBuffer.rewind();
- System.out.println(indirectBuffer.position()); // 0
- castedIndirectBuffer.put(putValue);
- castedIndirectBuffer.put(putValue);
- indirectBuffer = indirectBuffer.flip();
- System.out.println(indirectBuffer.position()); // 0
- System.out.println(indirectBuffer.remaining()); // 2
- }
-
- static void longBufferTest() {
- long[] data = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
- long putValue = 55;
-
- LongBuffer directBuffer = LongBuffer.wrap(data);
- Buffer indirectBuffer = LongBuffer.wrap(data);
- LongBuffer castedIndirectBuffer = (LongBuffer) indirectBuffer;
-
- directBuffer = directBuffer.position(5);
- System.out.println(directBuffer.position()); // 5
- directBuffer = directBuffer.limit(7);
- System.out.println(directBuffer.remaining()); // 2
- directBuffer = directBuffer.mark().put(putValue).put(putValue).reset();
- System.out.println(directBuffer.position()); // 5
- directBuffer = directBuffer.clear();
- System.out.println(directBuffer.position()); // 0
- System.out.println(directBuffer.remaining()); // 16
- directBuffer.put(putValue);
- directBuffer.put(putValue);
- directBuffer = directBuffer.rewind();
- System.out.println(directBuffer.position()); // 0
- directBuffer.put(putValue);
- directBuffer.put(putValue);
- directBuffer = directBuffer.flip();
- System.out.println(directBuffer.position()); // 0
- System.out.println(directBuffer.remaining()); // 2
-
- indirectBuffer = indirectBuffer.position(5);
- System.out.println(indirectBuffer.position()); // 5
- indirectBuffer = indirectBuffer.limit(7);
- System.out.println(indirectBuffer.remaining()); // 2
- indirectBuffer = indirectBuffer.mark();
- castedIndirectBuffer.put(putValue);
- castedIndirectBuffer.put(putValue);
- indirectBuffer = indirectBuffer.reset();
- System.out.println(indirectBuffer.position()); // 5
- indirectBuffer = indirectBuffer.clear();
- System.out.println(indirectBuffer.position()); // 0
- System.out.println(indirectBuffer.remaining()); // 16
- castedIndirectBuffer.put(putValue);
- castedIndirectBuffer.put(putValue);
- indirectBuffer = indirectBuffer.rewind();
- System.out.println(indirectBuffer.position()); // 0
- castedIndirectBuffer.put(putValue);
- castedIndirectBuffer.put(putValue);
- indirectBuffer = indirectBuffer.flip();
- System.out.println(indirectBuffer.position()); // 0
- System.out.println(indirectBuffer.remaining()); // 2
- }
-
- static void floatBufferTest() {
- float[] data = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
- float putValue = 55;
-
- FloatBuffer directBuffer = FloatBuffer.wrap(data);
- Buffer indirectBuffer = FloatBuffer.wrap(data);
- FloatBuffer castedIndirectBuffer = (FloatBuffer) indirectBuffer;
-
- directBuffer = directBuffer.position(5);
- System.out.println(directBuffer.position()); // 5
- directBuffer = directBuffer.limit(7);
- System.out.println(directBuffer.remaining()); // 2
- directBuffer = directBuffer.mark().put(putValue).put(putValue).reset();
- System.out.println(directBuffer.position()); // 5
- directBuffer = directBuffer.clear();
- System.out.println(directBuffer.position()); // 0
- System.out.println(directBuffer.remaining()); // 16
- directBuffer.put(putValue);
- directBuffer.put(putValue);
- directBuffer = directBuffer.rewind();
- System.out.println(directBuffer.position()); // 0
- directBuffer.put(putValue);
- directBuffer.put(putValue);
- directBuffer = directBuffer.flip();
- System.out.println(directBuffer.position()); // 0
- System.out.println(directBuffer.remaining()); // 2
-
- indirectBuffer = indirectBuffer.position(5);
- System.out.println(indirectBuffer.position()); // 5
- indirectBuffer = indirectBuffer.limit(7);
- System.out.println(indirectBuffer.remaining()); // 2
- indirectBuffer = indirectBuffer.mark();
- castedIndirectBuffer.put(putValue);
- castedIndirectBuffer.put(putValue);
- indirectBuffer = indirectBuffer.reset();
- System.out.println(indirectBuffer.position()); // 5
- indirectBuffer = indirectBuffer.clear();
- System.out.println(indirectBuffer.position()); // 0
- System.out.println(indirectBuffer.remaining()); // 16
- castedIndirectBuffer.put(putValue);
- castedIndirectBuffer.put(putValue);
- indirectBuffer = indirectBuffer.rewind();
- System.out.println(indirectBuffer.position()); // 0
- castedIndirectBuffer.put(putValue);
- castedIndirectBuffer.put(putValue);
- indirectBuffer = indirectBuffer.flip();
- System.out.println(indirectBuffer.position()); // 0
- System.out.println(indirectBuffer.remaining()); // 2
- }
-
- static void doubleBufferTest() {
- double[] data = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
- double putValue = 55;
-
- DoubleBuffer directBuffer = DoubleBuffer.wrap(data);
- Buffer indirectBuffer = DoubleBuffer.wrap(data);
- DoubleBuffer castedIndirectBuffer = (DoubleBuffer) indirectBuffer;
-
- directBuffer = directBuffer.position(5);
- System.out.println(directBuffer.position()); // 5
- directBuffer = directBuffer.limit(7);
- System.out.println(directBuffer.remaining()); // 2
- directBuffer = directBuffer.mark().put(putValue).put(putValue).reset();
- System.out.println(directBuffer.position()); // 5
- directBuffer = directBuffer.clear();
- System.out.println(directBuffer.position()); // 0
- System.out.println(directBuffer.remaining()); // 16
- directBuffer.put(putValue);
- directBuffer.put(putValue);
- directBuffer = directBuffer.rewind();
- System.out.println(directBuffer.position()); // 0
- directBuffer.put(putValue);
- directBuffer.put(putValue);
- directBuffer = directBuffer.flip();
- System.out.println(directBuffer.position()); // 0
- System.out.println(directBuffer.remaining()); // 2
-
- indirectBuffer = indirectBuffer.position(5);
- System.out.println(indirectBuffer.position()); // 5
- indirectBuffer = indirectBuffer.limit(7);
- System.out.println(indirectBuffer.remaining()); // 2
- indirectBuffer = indirectBuffer.mark();
- castedIndirectBuffer.put(putValue);
- castedIndirectBuffer.put(putValue);
- indirectBuffer = indirectBuffer.reset();
- System.out.println(indirectBuffer.position()); // 5
- indirectBuffer = indirectBuffer.clear();
- System.out.println(indirectBuffer.position()); // 0
- System.out.println(indirectBuffer.remaining()); // 16
- castedIndirectBuffer.put(putValue);
- castedIndirectBuffer.put(putValue);
- indirectBuffer = indirectBuffer.rewind();
- System.out.println(indirectBuffer.position()); // 0
- castedIndirectBuffer.put(putValue);
- castedIndirectBuffer.put(putValue);
- indirectBuffer = indirectBuffer.flip();
- System.out.println(indirectBuffer.position()); // 0
- System.out.println(indirectBuffer.remaining()); // 2
- }
-}
diff --git a/src/test/examplesJava11/buffercovariantreturntype/BufferCovariantReturnTypeTest.java b/src/test/examplesJava11/buffercovariantreturntype/BufferCovariantReturnTypeTest.java
new file mode 100644
index 0000000..ea93966
--- /dev/null
+++ b/src/test/examplesJava11/buffercovariantreturntype/BufferCovariantReturnTypeTest.java
@@ -0,0 +1,438 @@
+// Copyright (c) 2021, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+package buffercovariantreturntype;
+
+import static com.android.tools.r8.TestRuntime.CfVm.JDK11;
+
+import com.android.tools.r8.TestBase;
+import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.TestParametersCollection;
+import com.android.tools.r8.utils.StringUtils;
+import java.nio.Buffer;
+import java.nio.ByteBuffer;
+import java.nio.CharBuffer;
+import java.nio.DoubleBuffer;
+import java.nio.FloatBuffer;
+import java.nio.IntBuffer;
+import java.nio.LongBuffer;
+import java.nio.ShortBuffer;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameter;
+import org.junit.runners.Parameterized.Parameters;
+
+@RunWith(Parameterized.class)
+public class BufferCovariantReturnTypeTest extends TestBase {
+
+ private static final String EXPECTED_RESULT_PER_BUFFER =
+ StringUtils.lines("5", "2", "5", "0", "16", "0", "0", "2");
+ private static final String EXPECTED_RESULT =
+ new String(new char[14]).replace("\0", EXPECTED_RESULT_PER_BUFFER);
+
+ @Parameter(0)
+ public TestParameters parameters;
+
+ @Parameters(name = "{0}")
+ public static TestParametersCollection data() {
+ return getTestParameters()
+ .withCfRuntimesStartingFromIncluding(JDK11)
+ .withDexRuntimes()
+ .withAllApiLevelsAlsoForCf()
+ .build();
+ }
+
+ @Test
+ public void testJVM() throws Exception {
+ parameters.assumeJvmTestParameters();
+ testForJvm(parameters)
+ .addInnerClassesAndStrippedOuter(getClass())
+ .run(parameters.getRuntime(), BufferCovariantReturnTypeMain.class)
+ .assertSuccessWithOutput(EXPECTED_RESULT);
+ }
+
+ @Test
+ public void testD8() throws Exception {
+ testForD8(parameters.getBackend())
+ .addInnerClassesAndStrippedOuter(getClass())
+ .setMinApi(parameters)
+ .run(parameters.getRuntime(), BufferCovariantReturnTypeMain.class)
+ .assertSuccessWithOutput(EXPECTED_RESULT);
+ }
+
+ @Test
+ public void testR8() throws Exception {
+ parameters.assumeR8TestParameters();
+ testForR8(parameters.getBackend())
+ .addInnerClassesAndStrippedOuter(getClass())
+ .addKeepMainRule(BufferCovariantReturnTypeMain.class)
+ .setMinApi(parameters)
+ .run(parameters.getRuntime(), BufferCovariantReturnTypeMain.class)
+ .assertSuccessWithOutput(EXPECTED_RESULT);
+ }
+
+ public static class BufferCovariantReturnTypeMain {
+
+ public static void main(String[] args) {
+ byteBufferTest();
+ charBufferTest();
+ shortBufferTest();
+ intBufferTest();
+ longBufferTest();
+ floatBufferTest();
+ doubleBufferTest();
+ }
+
+ static void byteBufferTest() {
+ byte[] data = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
+ byte putValue = 55;
+
+ ByteBuffer directBuffer = ByteBuffer.wrap(data);
+ Buffer indirectBuffer = ByteBuffer.wrap(data);
+ ByteBuffer castedIndirectBuffer = (ByteBuffer) indirectBuffer;
+
+ directBuffer = directBuffer.position(5);
+ System.out.println(directBuffer.position()); // 5
+ directBuffer = directBuffer.limit(7);
+ System.out.println(directBuffer.remaining()); // 2
+ directBuffer = directBuffer.mark().put(putValue).put(putValue).reset();
+ System.out.println(directBuffer.position()); // 5
+ directBuffer = directBuffer.clear();
+ System.out.println(directBuffer.position()); // 0
+ System.out.println(directBuffer.remaining()); // 16
+ directBuffer.put(putValue);
+ directBuffer.put(putValue);
+ directBuffer = directBuffer.rewind();
+ System.out.println(directBuffer.position()); // 0
+ directBuffer.put(putValue);
+ directBuffer.put(putValue);
+ directBuffer = directBuffer.flip();
+ System.out.println(directBuffer.position()); // 0
+ System.out.println(directBuffer.remaining()); // 2
+
+ indirectBuffer = indirectBuffer.position(5);
+ System.out.println(indirectBuffer.position()); // 5
+ indirectBuffer = indirectBuffer.limit(7);
+ System.out.println(indirectBuffer.remaining()); // 2
+ indirectBuffer = indirectBuffer.mark();
+ castedIndirectBuffer.put(putValue);
+ castedIndirectBuffer.put(putValue);
+ indirectBuffer = indirectBuffer.reset();
+ System.out.println(indirectBuffer.position()); // 5
+ indirectBuffer = indirectBuffer.clear();
+ System.out.println(indirectBuffer.position()); // 0
+ System.out.println(indirectBuffer.remaining()); // 16
+ castedIndirectBuffer.put(putValue);
+ castedIndirectBuffer.put(putValue);
+ indirectBuffer = indirectBuffer.rewind();
+ System.out.println(indirectBuffer.position()); // 0
+ castedIndirectBuffer.put(putValue);
+ castedIndirectBuffer.put(putValue);
+ indirectBuffer = indirectBuffer.flip();
+ System.out.println(indirectBuffer.position()); // 0
+ System.out.println(indirectBuffer.remaining()); // 2
+ }
+
+ static void charBufferTest() {
+ char[] data = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
+ char putValue = 55;
+
+ CharBuffer directBuffer = CharBuffer.wrap(data);
+ Buffer indirectBuffer = CharBuffer.wrap(data);
+ CharBuffer castedIndirectBuffer = (CharBuffer) indirectBuffer;
+
+ directBuffer = directBuffer.position(5);
+ System.out.println(directBuffer.position()); // 5
+ directBuffer = directBuffer.limit(7);
+ System.out.println(directBuffer.remaining()); // 2
+ directBuffer = directBuffer.mark().put(putValue).put(putValue).reset();
+ System.out.println(directBuffer.position()); // 5
+ directBuffer = directBuffer.clear();
+ System.out.println(directBuffer.position()); // 0
+ System.out.println(directBuffer.remaining()); // 16
+ directBuffer.put(putValue);
+ directBuffer.put(putValue);
+ directBuffer = directBuffer.rewind();
+ System.out.println(directBuffer.position()); // 0
+ directBuffer.put(putValue);
+ directBuffer.put(putValue);
+ directBuffer = directBuffer.flip();
+ System.out.println(directBuffer.position()); // 0
+ System.out.println(directBuffer.remaining()); // 2
+
+ indirectBuffer = indirectBuffer.position(5);
+ System.out.println(indirectBuffer.position()); // 5
+ indirectBuffer = indirectBuffer.limit(7);
+ System.out.println(indirectBuffer.remaining()); // 2
+ indirectBuffer = indirectBuffer.mark();
+ castedIndirectBuffer.put(putValue);
+ castedIndirectBuffer.put(putValue);
+ indirectBuffer = indirectBuffer.reset();
+ System.out.println(indirectBuffer.position()); // 5
+ indirectBuffer = indirectBuffer.clear();
+ System.out.println(indirectBuffer.position()); // 0
+ System.out.println(indirectBuffer.remaining()); // 16
+ castedIndirectBuffer.put(putValue);
+ castedIndirectBuffer.put(putValue);
+ indirectBuffer = indirectBuffer.rewind();
+ System.out.println(indirectBuffer.position()); // 0
+ castedIndirectBuffer.put(putValue);
+ castedIndirectBuffer.put(putValue);
+ indirectBuffer = indirectBuffer.flip();
+ System.out.println(indirectBuffer.position()); // 0
+ System.out.println(indirectBuffer.remaining()); // 2
+ }
+
+ static void shortBufferTest() {
+ short[] data = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
+ short putValue = 55;
+
+ ShortBuffer directBuffer = ShortBuffer.wrap(data);
+ Buffer indirectBuffer = ShortBuffer.wrap(data);
+ ShortBuffer castedIndirectBuffer = (ShortBuffer) indirectBuffer;
+
+ directBuffer = directBuffer.position(5);
+ System.out.println(directBuffer.position()); // 5
+ directBuffer = directBuffer.limit(7);
+ System.out.println(directBuffer.remaining()); // 2
+ directBuffer = directBuffer.mark().put(putValue).put(putValue).reset();
+ System.out.println(directBuffer.position()); // 5
+ directBuffer = directBuffer.clear();
+ System.out.println(directBuffer.position()); // 0
+ System.out.println(directBuffer.remaining()); // 16
+ directBuffer.put(putValue);
+ directBuffer.put(putValue);
+ directBuffer = directBuffer.rewind();
+ System.out.println(directBuffer.position()); // 0
+ directBuffer.put(putValue);
+ directBuffer.put(putValue);
+ directBuffer = directBuffer.flip();
+ System.out.println(directBuffer.position()); // 0
+ System.out.println(directBuffer.remaining()); // 2
+
+ indirectBuffer = indirectBuffer.position(5);
+ System.out.println(indirectBuffer.position()); // 5
+ indirectBuffer = indirectBuffer.limit(7);
+ System.out.println(indirectBuffer.remaining()); // 2
+ indirectBuffer = indirectBuffer.mark();
+ castedIndirectBuffer.put(putValue);
+ castedIndirectBuffer.put(putValue);
+ indirectBuffer = indirectBuffer.reset();
+ System.out.println(indirectBuffer.position()); // 5
+ indirectBuffer = indirectBuffer.clear();
+ System.out.println(indirectBuffer.position()); // 0
+ System.out.println(indirectBuffer.remaining()); // 16
+ castedIndirectBuffer.put(putValue);
+ castedIndirectBuffer.put(putValue);
+ indirectBuffer = indirectBuffer.rewind();
+ System.out.println(indirectBuffer.position()); // 0
+ castedIndirectBuffer.put(putValue);
+ castedIndirectBuffer.put(putValue);
+ indirectBuffer = indirectBuffer.flip();
+ System.out.println(indirectBuffer.position()); // 0
+ System.out.println(indirectBuffer.remaining()); // 2
+ }
+
+ static void intBufferTest() {
+ int[] data = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
+ int putValue = 55;
+
+ IntBuffer directBuffer = IntBuffer.wrap(data);
+ Buffer indirectBuffer = IntBuffer.wrap(data);
+ IntBuffer castedIndirectBuffer = (IntBuffer) indirectBuffer;
+
+ directBuffer = directBuffer.position(5);
+ System.out.println(directBuffer.position()); // 5
+ directBuffer = directBuffer.limit(7);
+ System.out.println(directBuffer.remaining()); // 2
+ directBuffer = directBuffer.mark().put(putValue).put(putValue).reset();
+ System.out.println(directBuffer.position()); // 5
+ directBuffer = directBuffer.clear();
+ System.out.println(directBuffer.position()); // 0
+ System.out.println(directBuffer.remaining()); // 16
+ directBuffer.put(putValue);
+ directBuffer.put(putValue);
+ directBuffer = directBuffer.rewind();
+ System.out.println(directBuffer.position()); // 0
+ directBuffer.put(putValue);
+ directBuffer.put(putValue);
+ directBuffer = directBuffer.flip();
+ System.out.println(directBuffer.position()); // 0
+ System.out.println(directBuffer.remaining()); // 2
+
+ indirectBuffer = indirectBuffer.position(5);
+ System.out.println(indirectBuffer.position()); // 5
+ indirectBuffer = indirectBuffer.limit(7);
+ System.out.println(indirectBuffer.remaining()); // 2
+ indirectBuffer = indirectBuffer.mark();
+ castedIndirectBuffer.put(putValue);
+ castedIndirectBuffer.put(putValue);
+ indirectBuffer = indirectBuffer.reset();
+ System.out.println(indirectBuffer.position()); // 5
+ indirectBuffer = indirectBuffer.clear();
+ System.out.println(indirectBuffer.position()); // 0
+ System.out.println(indirectBuffer.remaining()); // 16
+ castedIndirectBuffer.put(putValue);
+ castedIndirectBuffer.put(putValue);
+ indirectBuffer = indirectBuffer.rewind();
+ System.out.println(indirectBuffer.position()); // 0
+ castedIndirectBuffer.put(putValue);
+ castedIndirectBuffer.put(putValue);
+ indirectBuffer = indirectBuffer.flip();
+ System.out.println(indirectBuffer.position()); // 0
+ System.out.println(indirectBuffer.remaining()); // 2
+ }
+
+ static void longBufferTest() {
+ long[] data = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
+ long putValue = 55;
+
+ LongBuffer directBuffer = LongBuffer.wrap(data);
+ Buffer indirectBuffer = LongBuffer.wrap(data);
+ LongBuffer castedIndirectBuffer = (LongBuffer) indirectBuffer;
+
+ directBuffer = directBuffer.position(5);
+ System.out.println(directBuffer.position()); // 5
+ directBuffer = directBuffer.limit(7);
+ System.out.println(directBuffer.remaining()); // 2
+ directBuffer = directBuffer.mark().put(putValue).put(putValue).reset();
+ System.out.println(directBuffer.position()); // 5
+ directBuffer = directBuffer.clear();
+ System.out.println(directBuffer.position()); // 0
+ System.out.println(directBuffer.remaining()); // 16
+ directBuffer.put(putValue);
+ directBuffer.put(putValue);
+ directBuffer = directBuffer.rewind();
+ System.out.println(directBuffer.position()); // 0
+ directBuffer.put(putValue);
+ directBuffer.put(putValue);
+ directBuffer = directBuffer.flip();
+ System.out.println(directBuffer.position()); // 0
+ System.out.println(directBuffer.remaining()); // 2
+
+ indirectBuffer = indirectBuffer.position(5);
+ System.out.println(indirectBuffer.position()); // 5
+ indirectBuffer = indirectBuffer.limit(7);
+ System.out.println(indirectBuffer.remaining()); // 2
+ indirectBuffer = indirectBuffer.mark();
+ castedIndirectBuffer.put(putValue);
+ castedIndirectBuffer.put(putValue);
+ indirectBuffer = indirectBuffer.reset();
+ System.out.println(indirectBuffer.position()); // 5
+ indirectBuffer = indirectBuffer.clear();
+ System.out.println(indirectBuffer.position()); // 0
+ System.out.println(indirectBuffer.remaining()); // 16
+ castedIndirectBuffer.put(putValue);
+ castedIndirectBuffer.put(putValue);
+ indirectBuffer = indirectBuffer.rewind();
+ System.out.println(indirectBuffer.position()); // 0
+ castedIndirectBuffer.put(putValue);
+ castedIndirectBuffer.put(putValue);
+ indirectBuffer = indirectBuffer.flip();
+ System.out.println(indirectBuffer.position()); // 0
+ System.out.println(indirectBuffer.remaining()); // 2
+ }
+
+ static void floatBufferTest() {
+ float[] data = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
+ float putValue = 55;
+
+ FloatBuffer directBuffer = FloatBuffer.wrap(data);
+ Buffer indirectBuffer = FloatBuffer.wrap(data);
+ FloatBuffer castedIndirectBuffer = (FloatBuffer) indirectBuffer;
+
+ directBuffer = directBuffer.position(5);
+ System.out.println(directBuffer.position()); // 5
+ directBuffer = directBuffer.limit(7);
+ System.out.println(directBuffer.remaining()); // 2
+ directBuffer = directBuffer.mark().put(putValue).put(putValue).reset();
+ System.out.println(directBuffer.position()); // 5
+ directBuffer = directBuffer.clear();
+ System.out.println(directBuffer.position()); // 0
+ System.out.println(directBuffer.remaining()); // 16
+ directBuffer.put(putValue);
+ directBuffer.put(putValue);
+ directBuffer = directBuffer.rewind();
+ System.out.println(directBuffer.position()); // 0
+ directBuffer.put(putValue);
+ directBuffer.put(putValue);
+ directBuffer = directBuffer.flip();
+ System.out.println(directBuffer.position()); // 0
+ System.out.println(directBuffer.remaining()); // 2
+
+ indirectBuffer = indirectBuffer.position(5);
+ System.out.println(indirectBuffer.position()); // 5
+ indirectBuffer = indirectBuffer.limit(7);
+ System.out.println(indirectBuffer.remaining()); // 2
+ indirectBuffer = indirectBuffer.mark();
+ castedIndirectBuffer.put(putValue);
+ castedIndirectBuffer.put(putValue);
+ indirectBuffer = indirectBuffer.reset();
+ System.out.println(indirectBuffer.position()); // 5
+ indirectBuffer = indirectBuffer.clear();
+ System.out.println(indirectBuffer.position()); // 0
+ System.out.println(indirectBuffer.remaining()); // 16
+ castedIndirectBuffer.put(putValue);
+ castedIndirectBuffer.put(putValue);
+ indirectBuffer = indirectBuffer.rewind();
+ System.out.println(indirectBuffer.position()); // 0
+ castedIndirectBuffer.put(putValue);
+ castedIndirectBuffer.put(putValue);
+ indirectBuffer = indirectBuffer.flip();
+ System.out.println(indirectBuffer.position()); // 0
+ System.out.println(indirectBuffer.remaining()); // 2
+ }
+
+ static void doubleBufferTest() {
+ double[] data = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
+ double putValue = 55;
+
+ DoubleBuffer directBuffer = DoubleBuffer.wrap(data);
+ Buffer indirectBuffer = DoubleBuffer.wrap(data);
+ DoubleBuffer castedIndirectBuffer = (DoubleBuffer) indirectBuffer;
+
+ directBuffer = directBuffer.position(5);
+ System.out.println(directBuffer.position()); // 5
+ directBuffer = directBuffer.limit(7);
+ System.out.println(directBuffer.remaining()); // 2
+ directBuffer = directBuffer.mark().put(putValue).put(putValue).reset();
+ System.out.println(directBuffer.position()); // 5
+ directBuffer = directBuffer.clear();
+ System.out.println(directBuffer.position()); // 0
+ System.out.println(directBuffer.remaining()); // 16
+ directBuffer.put(putValue);
+ directBuffer.put(putValue);
+ directBuffer = directBuffer.rewind();
+ System.out.println(directBuffer.position()); // 0
+ directBuffer.put(putValue);
+ directBuffer.put(putValue);
+ directBuffer = directBuffer.flip();
+ System.out.println(directBuffer.position()); // 0
+ System.out.println(directBuffer.remaining()); // 2
+
+ indirectBuffer = indirectBuffer.position(5);
+ System.out.println(indirectBuffer.position()); // 5
+ indirectBuffer = indirectBuffer.limit(7);
+ System.out.println(indirectBuffer.remaining()); // 2
+ indirectBuffer = indirectBuffer.mark();
+ castedIndirectBuffer.put(putValue);
+ castedIndirectBuffer.put(putValue);
+ indirectBuffer = indirectBuffer.reset();
+ System.out.println(indirectBuffer.position()); // 5
+ indirectBuffer = indirectBuffer.clear();
+ System.out.println(indirectBuffer.position()); // 0
+ System.out.println(indirectBuffer.remaining()); // 16
+ castedIndirectBuffer.put(putValue);
+ castedIndirectBuffer.put(putValue);
+ indirectBuffer = indirectBuffer.rewind();
+ System.out.println(indirectBuffer.position()); // 0
+ castedIndirectBuffer.put(putValue);
+ castedIndirectBuffer.put(putValue);
+ indirectBuffer = indirectBuffer.flip();
+ System.out.println(indirectBuffer.position()); // 0
+ System.out.println(indirectBuffer.remaining()); // 2
+ }
+ }
+}
diff --git a/src/test/java/com/android/tools/r8/desugar/buffercovariantreturntype/BufferCovariantReturnTypeTest.java b/src/test/java/com/android/tools/r8/desugar/buffercovariantreturntype/BufferCovariantReturnTypeTest.java
deleted file mode 100644
index 43f183d..0000000
--- a/src/test/java/com/android/tools/r8/desugar/buffercovariantreturntype/BufferCovariantReturnTypeTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-// Copyright (c) 2021, the R8 project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-package com.android.tools.r8.desugar.buffercovariantreturntype;
-
-import static com.android.tools.r8.TestRuntime.CfVm.JDK11;
-import static com.android.tools.r8.utils.FileUtils.JAR_EXTENSION;
-
-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.StringUtils;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.junit.runners.Parameterized.Parameter;
-import org.junit.runners.Parameterized.Parameters;
-
-@RunWith(Parameterized.class)
-public class BufferCovariantReturnTypeTest extends TestBase {
-
- private static final Path JAR =
- Paths.get(ToolHelper.EXAMPLES_JAVA11_JAR_DIR)
- .resolve("buffercovariantreturntype" + JAR_EXTENSION);
- private static final String EXPECTED_RESULT_PER_BUFFER =
- StringUtils.lines("5", "2", "5", "0", "16", "0", "0", "2");
- private static final String EXPECTED_RESULT =
- new String(new char[14]).replace("\0", EXPECTED_RESULT_PER_BUFFER);
-
- @Parameter(0)
- public TestParameters parameters;
-
- @Parameters(name = "{0}")
- public static TestParametersCollection data() {
- return getTestParameters()
- .withCfRuntimesStartingFromIncluding(JDK11)
- .withDexRuntimes()
- .withAllApiLevelsAlsoForCf()
- .build();
- }
-
- @Test
- public void testJVM() throws Exception {
- parameters.assumeJvmTestParameters();
- testForJvm(parameters)
- .addProgramFiles(JAR)
- .run(parameters.getRuntime(), "buffercovariantreturntype.BufferCovariantReturnTypeMain")
- .assertSuccessWithOutput(EXPECTED_RESULT);
- }
-
- @Test
- public void testD8() throws Exception {
- testForD8(parameters.getBackend())
- .addProgramFiles(JAR)
- .setMinApi(parameters)
- .run(parameters.getRuntime(), "buffercovariantreturntype.BufferCovariantReturnTypeMain")
- .assertSuccessWithOutput(EXPECTED_RESULT);
- }
-
- @Test
- public void testR8() throws Exception {
- parameters.assumeR8TestParameters();
- testForR8(parameters.getBackend())
- .addProgramFiles(JAR)
- .addKeepMainRule("buffercovariantreturntype.BufferCovariantReturnTypeMain")
- .setMinApi(parameters)
- .run(parameters.getRuntime(), "buffercovariantreturntype.BufferCovariantReturnTypeMain")
- .assertSuccessWithOutput(EXPECTED_RESULT);
- }
-}