diff options
author | jeffhao <jeffhao@google.com> | 2011-09-29 17:41:15 -0700 |
---|---|---|
committer | jeffhao <jeffhao@google.com> | 2011-09-29 17:41:15 -0700 |
commit | 5d1ac920fdaef5d4ec8f66bb734488cd9660b024 (patch) | |
tree | dd372f306ab70f4c86759869b1f74eca62ff6f2b /test/070-nio-buffer/src | |
parent | c31664f3d82e6cd68275a529a8a73f067a52e8be (diff) | |
download | art-5d1ac920fdaef5d4ec8f66bb734488cd9660b024.tar.gz art-5d1ac920fdaef5d4ec8f66bb734488cd9660b024.tar.bz2 art-5d1ac920fdaef5d4ec8f66bb734488cd9660b024.zip |
Adding old unit tests to test suite.
These tests are copied straight over. They'll still run, but they're
using the old system.
Change-Id: If494519e52ddf858a9febfc55bdae830468cb3c8
Diffstat (limited to 'test/070-nio-buffer/src')
-rw-r--r-- | test/070-nio-buffer/src/Main.java | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/test/070-nio-buffer/src/Main.java b/test/070-nio-buffer/src/Main.java new file mode 100644 index 0000000000..bfcab3afb3 --- /dev/null +++ b/test/070-nio-buffer/src/Main.java @@ -0,0 +1,97 @@ +/* + * Copyright (C) 2008 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import java.nio.BufferOverflowException; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.nio.FloatBuffer; +import java.nio.IntBuffer; +import java.nio.ShortBuffer; + +public class Main { + public static void main(String[] args) { + intFloatTest(); + basicShortTest(); + } + + /* + * Create a buffer and fiddle with it. + */ + public static void basicShortTest() { + ByteBuffer directBuf = ByteBuffer.allocateDirect(64); + //ByteBuffer directBuf = ByteBuffer.allocateDirect(65); + + ShortBuffer shortBuf = directBuf.asShortBuffer(); + + short[] myShorts = { + 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, + 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, + 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, + 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031 + }; + + shortBuf.position(0); + shortBuf.put(myShorts, 0, 32); // should work + shortBuf.position(0); + shortBuf.put(myShorts, 16, 16); // should work + shortBuf.put(myShorts, 16, 16); // advance to end + + try { + shortBuf.put(myShorts, 0, 1); // should fail + System.err.println("ERROR: out-of-bounds put succeeded\n"); + } catch (BufferOverflowException boe) { + System.out.println("Got expected buffer overflow exception"); + } + + try { + shortBuf.position(0); + shortBuf.put(myShorts, 0, 33); // should fail + System.err.println("ERROR: out-of-bounds put succeeded\n"); + } catch (IndexOutOfBoundsException ioobe) { + System.out.println("Got expected out-of-bounds exception"); + } + + try { + shortBuf.position(16); + shortBuf.put(myShorts, 0, 17); // should fail + System.err.println("ERROR: out-of-bounds put succeeded\n"); + } catch (BufferOverflowException boe) { + System.out.println("Got expected buffer overflow exception"); + } + } + + /* + * Try this with either floats or ints; ints fail with + * BufferOverflowException, floats work. + * + * From http://code.google.com/p/android/issues/detail?id=1585 . + */ + public static void intFloatTest() { + ByteBuffer direct = ByteBuffer.allocateDirect(100); + direct.order(ByteOrder.nativeOrder()); + IntBuffer int1 = direct.asIntBuffer(); + int data[] = new int[25]; + //FloatBuffer int1 = direct.asFloatBuffer(); + //float data[] = new float[25]; + int1.clear (); + int1.put (data); + int1.position (0); + + int1.clear (); + int1.put (data); + int1.position (0); + } +} |