summaryrefslogtreecommitdiff
path: root/jsr166-tests/src/test/java/jsr166/CountedCompleterTest.java
diff options
context:
space:
mode:
authorPrzemyslaw Szczepaniak <pszczepaniak@google.com>2016-03-11 15:59:10 +0000
committerPrzemyslaw Szczepaniak <pszczepaniak@google.com>2016-03-15 11:14:14 +0000
commite8b323c7cb7d55be9a4df579231e44f04f53d766 (patch)
treec40a0cadb5caa371c28b117b017daddef4b72c28 /jsr166-tests/src/test/java/jsr166/CountedCompleterTest.java
parent0eedcb21289c1916e876810982c2c8d473edf24f (diff)
JSR-166 update without java 1.9 method/classes
Second attempt, in frist one I've submitted some code from openJdk 1.9 that shouldn't be here, orignial change can be found at 5328e07d282bef36ac8b757bbee16a761415b2c4 Adapted from sources taken from CVS using: cvs -d ':pserver:anonymous@gee.cs.oswego.edu/home/jsr166/jsr166' checkout -D "03/03/2016 10:00:00 GMT" jsr166 This time with hidden/removed "@since 9" methods and classes Bug: 27426599 Change-Id: Ibd8d26e13cba091bfd983c73d005e4f8d8f5946d (cherry picked from commit b8b75116273ecfdb8ffdd1869b1c0dd04570a95e)
Diffstat (limited to 'jsr166-tests/src/test/java/jsr166/CountedCompleterTest.java')
-rw-r--r--jsr166-tests/src/test/java/jsr166/CountedCompleterTest.java72
1 files changed, 45 insertions, 27 deletions
diff --git a/jsr166-tests/src/test/java/jsr166/CountedCompleterTest.java b/jsr166-tests/src/test/java/jsr166/CountedCompleterTest.java
index 80d7b3bf5a..8a38efff95 100644
--- a/jsr166-tests/src/test/java/jsr166/CountedCompleterTest.java
+++ b/jsr166-tests/src/test/java/jsr166/CountedCompleterTest.java
@@ -31,7 +31,7 @@ public class CountedCompleterTest extends JSR166TestCase {
// main(suite(), args);
// }
// public static Test suite() {
- // return new TestSuite(...);
+ // return new TestSuite(CountedCompleterTest.class);
// }
// Runs with "mainPool" use > 1 thread. singletonPool tests use 1
@@ -53,7 +53,7 @@ public class CountedCompleterTest extends JSR166TestCase {
}
private void testInvokeOnPool(ForkJoinPool pool, ForkJoinTask a) {
- try {
+ try (PoolCleaner cleaner = cleaner(pool)) {
assertFalse(a.isDone());
assertFalse(a.isCompletedNormally());
assertFalse(a.isCompletedAbnormally());
@@ -69,8 +69,6 @@ public class CountedCompleterTest extends JSR166TestCase {
assertFalse(a.isCancelled());
assertNull(a.getException());
assertNull(a.getRawResult());
- } finally {
- joinPool(pool);
}
}
@@ -99,17 +97,17 @@ public class CountedCompleterTest extends JSR166TestCase {
{
Thread.currentThread().interrupt();
- long t0 = System.nanoTime();
+ long startTime = System.nanoTime();
assertNull(a.join());
- assertTrue(millisElapsedSince(t0) < SMALL_DELAY_MS);
+ assertTrue(millisElapsedSince(startTime) < SMALL_DELAY_MS);
Thread.interrupted();
}
{
Thread.currentThread().interrupt();
- long t0 = System.nanoTime();
+ long startTime = System.nanoTime();
a.quietlyJoin(); // should be no-op
- assertTrue(millisElapsedSince(t0) < SMALL_DELAY_MS);
+ assertTrue(millisElapsedSince(startTime) < SMALL_DELAY_MS);
Thread.interrupted();
}
@@ -142,9 +140,9 @@ public class CountedCompleterTest extends JSR166TestCase {
Thread.interrupted();
{
- long t0 = System.nanoTime();
+ long startTime = System.nanoTime();
a.quietlyJoin(); // should be no-op
- assertTrue(millisElapsedSince(t0) < SMALL_DELAY_MS);
+ assertTrue(millisElapsedSince(startTime) < SMALL_DELAY_MS);
}
try {
@@ -180,9 +178,9 @@ public class CountedCompleterTest extends JSR166TestCase {
Thread.interrupted();
{
- long t0 = System.nanoTime();
+ long startTime = System.nanoTime();
a.quietlyJoin(); // should be no-op
- assertTrue(millisElapsedSince(t0) < SMALL_DELAY_MS);
+ assertTrue(millisElapsedSince(startTime) < SMALL_DELAY_MS);
}
try {
@@ -284,6 +282,9 @@ public class CountedCompleterTest extends JSR166TestCase {
final class NoopCC extends CheckedCC {
NoopCC() { super(); }
NoopCC(CountedCompleter p) { super(p); }
+ NoopCC(CountedCompleter p, int initialPendingCount) {
+ super(p, initialPendingCount);
+ }
protected void realCompute() {}
}
@@ -302,6 +303,7 @@ public class CountedCompleterTest extends JSR166TestCase {
void testComplete(NoopCC cc, Object x, int pendingCount) {
cc.setPendingCount(pendingCount);
cc.checkCompletes(x);
+ assertEquals(pendingCount, cc.getPendingCount());
}
/**
@@ -315,14 +317,20 @@ public class CountedCompleterTest extends JSR166TestCase {
}
/**
- * completeExceptionally(null) throws NullPointerException
+ * completeExceptionally(null) surprisingly has the same effect as
+ * completeExceptionally(new RuntimeException())
*/
public void testCompleteExceptionally_null() {
+ NoopCC a = new NoopCC();
+ a.completeExceptionally(null);
try {
- new NoopCC()
- .checkCompletesExceptionally(null);
+ a.invoke();
shouldThrow();
- } catch (NullPointerException success) {}
+ } catch (RuntimeException success) {
+ assertSame(success.getClass(), RuntimeException.class);
+ assertNull(success.getCause());
+ a.checkCompletedExceptionally(success);
+ }
}
/**
@@ -331,10 +339,15 @@ public class CountedCompleterTest extends JSR166TestCase {
public void testSetPendingCount() {
NoopCC a = new NoopCC();
assertEquals(0, a.getPendingCount());
- a.setPendingCount(1);
- assertEquals(1, a.getPendingCount());
- a.setPendingCount(27);
- assertEquals(27, a.getPendingCount());
+ int[] vals = {
+ -1, 0, 1,
+ Integer.MIN_VALUE,
+ Integer.MAX_VALUE,
+ };
+ for (int val : vals) {
+ a.setPendingCount(val);
+ assertEquals(val, a.getPendingCount());
+ }
}
/**
@@ -347,21 +360,26 @@ public class CountedCompleterTest extends JSR166TestCase {
assertEquals(1, a.getPendingCount());
a.addToPendingCount(27);
assertEquals(28, a.getPendingCount());
+ a.addToPendingCount(-28);
+ assertEquals(0, a.getPendingCount());
}
/**
* decrementPendingCountUnlessZero decrements reported pending
* count unless zero
*/
- public void testDecrementPendingCount() {
- NoopCC a = new NoopCC();
- assertEquals(0, a.getPendingCount());
- a.addToPendingCount(1);
+ public void testDecrementPendingCountUnlessZero() {
+ NoopCC a = new NoopCC(null, 2);
+ assertEquals(2, a.getPendingCount());
+ assertEquals(2, a.decrementPendingCountUnlessZero());
assertEquals(1, a.getPendingCount());
- a.decrementPendingCountUnlessZero();
+ assertEquals(1, a.decrementPendingCountUnlessZero());
assertEquals(0, a.getPendingCount());
- a.decrementPendingCountUnlessZero();
+ assertEquals(0, a.decrementPendingCountUnlessZero());
assertEquals(0, a.getPendingCount());
+ a.setPendingCount(-1);
+ assertEquals(-1, a.decrementPendingCountUnlessZero());
+ assertEquals(-2, a.getPendingCount());
}
/**
@@ -485,7 +503,7 @@ public class CountedCompleterTest extends JSR166TestCase {
}
/**
- * quietlyCompleteRoot completes root task
+ * quietlyCompleteRoot completes root task and only root task
*/
public void testQuietlyCompleteRoot() {
NoopCC a = new NoopCC();