summaryrefslogtreecommitdiffstats
path: root/jsr166-tests/src/test/java/jsr166/SynchronousQueueTest.java
diff options
context:
space:
mode:
authorNarayan Kamath <narayan@google.com>2015-04-28 11:40:00 +0100
committerNarayan Kamath <narayan@google.com>2015-04-30 12:00:08 +0100
commit8e9a0e92906742b17eb08d7fb83cca91965f9b8e (patch)
tree790a5161ed9c8648a8dacc94c36b5db53f8da4eb /jsr166-tests/src/test/java/jsr166/SynchronousQueueTest.java
parentedf43d27e240d82106f39ae91404963c23987234 (diff)
downloadlibcore-8e9a0e92906742b17eb08d7fb83cca91965f9b8e.zip
libcore-8e9a0e92906742b17eb08d7fb83cca91965f9b8e.tar.gz
libcore-8e9a0e92906742b17eb08d7fb83cca91965f9b8e.tar.bz2
Update JSR166 tck tests.
The following tests have been omitted because they are unsupported : - Atomic8Test.java - CompletableFutureTest.java - ConcurrentHashMap8Test.java - DoubleAccumulatorTest.java - DoubleAdderTest.java - ForkJoinPool8Test.java - ForkJoinTask8Test.java - LongAccumulatorTest.java - LongAdderTest.java - SplittableRandomTest.java - StampedLockTest.java - ThreadLocalRandom8Test.java - ThreadPoolExecutor9Test.java A package declaration has been added to all files (package jsr166;) and the base-class JSR166Test has been changed not to rely on features that aren't available on android / junit in the android environment. We also avoid using junit4 style TestSuite declarations. While the CTS test runner handles them properly usually, it trips over itself when it encounters a failure and tries to run each test in an invidual process and fails each test for no good reason (needs investigation on the CTS side of things) bug: 20628776 (cherry picked from commit 5da8b2b3cac51f0f592a5e1941bd84eade9648cd) Change-Id: If35be0881ad8da4c604ce6683149b15c1a85f289
Diffstat (limited to 'jsr166-tests/src/test/java/jsr166/SynchronousQueueTest.java')
-rw-r--r--jsr166-tests/src/test/java/jsr166/SynchronousQueueTest.java53
1 files changed, 41 insertions, 12 deletions
diff --git a/jsr166-tests/src/test/java/jsr166/SynchronousQueueTest.java b/jsr166-tests/src/test/java/jsr166/SynchronousQueueTest.java
index bd030cf..605a955 100644
--- a/jsr166-tests/src/test/java/jsr166/SynchronousQueueTest.java
+++ b/jsr166-tests/src/test/java/jsr166/SynchronousQueueTest.java
@@ -8,22 +8,48 @@
package jsr166;
-import junit.framework.*;
-import java.util.Arrays;
+import static java.util.concurrent.TimeUnit.MILLISECONDS;
+
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.NoSuchElementException;
-import java.util.Queue;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Executors;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.SynchronousQueue;
-import static java.util.concurrent.TimeUnit.MILLISECONDS;
+
+import junit.framework.Test;
public class SynchronousQueueTest extends JSR166TestCase {
+ // android-note: These tests have been moved into their own separate
+ // classes to work around CTS issues.
+ //
+ // public static class Fair extends BlockingQueueTest {
+ // protected BlockingQueue emptyCollection() {
+ // return new SynchronousQueue(true);
+ // }
+ // }
+ //
+ // public static class NonFair extends BlockingQueueTest {
+ // protected BlockingQueue emptyCollection() {
+ // return new SynchronousQueue(false);
+ // }
+ // }
+ //
+ // public static void main(String[] args) {
+ // main(suite(), args);
+ // }
+ //
+ // public static Test suite() {
+ // return newTestSuite(SynchronousQueueTest.class,
+ // new Fair().testSuite(),
+ // new NonFair().testSuite());
+ // }
+
/**
* Any SynchronousQueue is both empty and full
*/
@@ -402,7 +428,7 @@ public class SynchronousQueueTest extends JSR166TestCase {
public void testToArray_null(boolean fair) {
final SynchronousQueue q = new SynchronousQueue(fair);
try {
- Object o[] = q.toArray(null);
+ Object[] o = q.toArray(null);
shouldThrow();
} catch (NullPointerException success) {}
}
@@ -413,13 +439,7 @@ public class SynchronousQueueTest extends JSR166TestCase {
public void testIterator() { testIterator(false); }
public void testIterator_fair() { testIterator(true); }
public void testIterator(boolean fair) {
- final SynchronousQueue q = new SynchronousQueue(fair);
- Iterator it = q.iterator();
- assertFalse(it.hasNext());
- try {
- Object x = it.next();
- shouldThrow();
- } catch (NoSuchElementException success) {}
+ assertIteratorExhausted(new SynchronousQueue(fair).iterator());
}
/**
@@ -586,4 +606,13 @@ public class SynchronousQueueTest extends JSR166TestCase {
awaitTermination(t2);
}
+ /**
+ * remove(null), contains(null) always return false
+ */
+ public void testNeverContainsNull() {
+ Collection<?> q = new SynchronousQueue();
+ assertFalse(q.contains(null));
+ assertFalse(q.remove(null));
+ }
+
}