mirror of
https://github.com/fankes/termux-app.git
synced 2025-09-04 17:55:36 +08:00
55 lines
1.6 KiB
Java
55 lines
1.6 KiB
Java
package com.termux.terminal;
|
|
|
|
import junit.framework.TestCase;
|
|
|
|
public class ByteQueueTest extends TestCase {
|
|
|
|
private static void assertArrayEquals(byte[] expected, byte[] actual) {
|
|
if (expected.length != actual.length) {
|
|
fail("Difference array length");
|
|
}
|
|
for (int i = 0; i < expected.length; i++) {
|
|
if (expected[i] != actual[i]) {
|
|
fail("Inequals at index=" + i + ", expected=" + (int) expected[i] + ", actual=" + (int) actual[i]);
|
|
}
|
|
}
|
|
}
|
|
|
|
public void testCompleteWrites() throws Exception {
|
|
ByteQueue q = new ByteQueue(10);
|
|
assertEquals(true, q.write(new byte[]{1, 2, 3}, 0, 3));
|
|
|
|
byte[] arr = new byte[10];
|
|
assertEquals(3, q.read(arr, true));
|
|
assertArrayEquals(new byte[]{1, 2, 3}, new byte[]{arr[0], arr[1], arr[2]});
|
|
|
|
assertEquals(true, q.write(new byte[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, 0, 10));
|
|
assertEquals(10, q.read(arr, true));
|
|
assertArrayEquals(new byte[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, arr);
|
|
}
|
|
|
|
public void testQueueWraparound() throws Exception {
|
|
ByteQueue q = new ByteQueue(10);
|
|
|
|
byte[] origArray = new byte[]{1, 2, 3, 4, 5, 6};
|
|
byte[] readArray = new byte[origArray.length];
|
|
for (int i = 0; i < 20; i++) {
|
|
q.write(origArray, 0, origArray.length);
|
|
assertEquals(origArray.length, q.read(readArray, true));
|
|
assertArrayEquals(origArray, readArray);
|
|
}
|
|
}
|
|
|
|
public void testWriteNotesClosing() throws Exception {
|
|
ByteQueue q = new ByteQueue(10);
|
|
q.close();
|
|
assertEquals(false, q.write(new byte[]{1, 2, 3}, 0, 3));
|
|
}
|
|
|
|
public void testReadNonBlocking() throws Exception {
|
|
ByteQueue q = new ByteQueue(10);
|
|
assertEquals(0, q.read(new byte[128], false));
|
|
}
|
|
|
|
}
|