summaryrefslogtreecommitdiff
path: root/jsr166-tests/src/test/java/jsr166/AbstractQueuedSynchronizerTest.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 10:42:51 +0000
commitb8b75116273ecfdb8ffdd1869b1c0dd04570a95e (patch)
tree1622f7420704b7ca6520ba3db150bbc6ab918503 /jsr166-tests/src/test/java/jsr166/AbstractQueuedSynchronizerTest.java
parenta8a9d448e97004dcd25c9ccb128e09bcb7690f6a (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
Diffstat (limited to 'jsr166-tests/src/test/java/jsr166/AbstractQueuedSynchronizerTest.java')
-rw-r--r--jsr166-tests/src/test/java/jsr166/AbstractQueuedSynchronizerTest.java14
1 files changed, 11 insertions, 3 deletions
diff --git a/jsr166-tests/src/test/java/jsr166/AbstractQueuedSynchronizerTest.java b/jsr166-tests/src/test/java/jsr166/AbstractQueuedSynchronizerTest.java
index b3c4110297..d102fc63c8 100644
--- a/jsr166-tests/src/test/java/jsr166/AbstractQueuedSynchronizerTest.java
+++ b/jsr166-tests/src/test/java/jsr166/AbstractQueuedSynchronizerTest.java
@@ -29,7 +29,7 @@ public class AbstractQueuedSynchronizerTest extends JSR166TestCase {
// main(suite(), args);
// }
// public static Test suite() {
- // return new TestSuite(...);
+ // return new TestSuite(AbstractQueuedSynchronizerTest.class);
// }
/**
@@ -244,25 +244,33 @@ public class AbstractQueuedSynchronizerTest extends JSR166TestCase {
*/
void assertAwaitTimesOut(ConditionObject c, AwaitMethod awaitMethod) {
long timeoutMillis = timeoutMillis();
- long startTime = System.nanoTime();
+ long startTime;
try {
switch (awaitMethod) {
case awaitTimed:
+ startTime = System.nanoTime();
assertFalse(c.await(timeoutMillis, MILLISECONDS));
+ assertTrue(millisElapsedSince(startTime) >= timeoutMillis);
break;
case awaitNanos:
+ startTime = System.nanoTime();
long nanosTimeout = MILLISECONDS.toNanos(timeoutMillis);
long nanosRemaining = c.awaitNanos(nanosTimeout);
assertTrue(nanosRemaining <= 0);
+ assertTrue(nanosRemaining > -MILLISECONDS.toNanos(LONG_DELAY_MS));
+ assertTrue(millisElapsedSince(startTime) >= timeoutMillis);
break;
case awaitUntil:
+ // We shouldn't assume that nanoTime and currentTimeMillis
+ // use the same time source, so don't use nanoTime here.
+ java.util.Date delayedDate = delayedDate(timeoutMillis());
assertFalse(c.awaitUntil(delayedDate(timeoutMillis)));
+ assertTrue(new java.util.Date().getTime() >= delayedDate.getTime());
break;
default:
throw new UnsupportedOperationException();
}
} catch (InterruptedException ie) { threadUnexpectedException(ie); }
- assertTrue(millisElapsedSince(startTime) >= timeoutMillis);
}
/**