ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/test/tck/AbstractQueuedLongSynchronizerTest.java
(Generate patch)

Comparing jsr166/src/test/tck/AbstractQueuedLongSynchronizerTest.java (file contents):
Revision 1.27 by jsr166, Thu May 2 18:01:09 2013 UTC vs.
Revision 1.28 by jsr166, Tue Dec 2 07:23:13 2014 UTC

# Line 9 | Line 9
9   import junit.framework.*;
10   import java.util.*;
11   import static java.util.concurrent.TimeUnit.MILLISECONDS;
12 + import static java.util.concurrent.TimeUnit.NANOSECONDS;
13   import java.util.concurrent.locks.AbstractQueuedLongSynchronizer;
14   import java.util.concurrent.locks.AbstractQueuedLongSynchronizer.ConditionObject;
15  
# Line 1210 | Line 1211 | public class AbstractQueuedLongSynchroni
1211          assertFalse(l.isSignalled());
1212      }
1213  
1214 +    /**
1215 +     * awaitNanos/timed await with 0 wait times out immediately
1216 +     */
1217 +    public void testAwait_Zero() throws InterruptedException {
1218 +        final Mutex sync = new Mutex();
1219 +        final ConditionObject c = sync.newCondition();
1220 +        sync.acquire();
1221 +        assertTrue(c.awaitNanos(0L) <= 0);
1222 +        assertFalse(c.await(0L, NANOSECONDS));
1223 +        sync.release();
1224 +    }
1225 +
1226 +    /**
1227 +     * awaitNanos/timed await with maximum negative wait times does not underflow
1228 +     */
1229 +    public void testAwait_NegativeInfinity() throws InterruptedException {
1230 +        final Mutex sync = new Mutex();
1231 +        final ConditionObject c = sync.newCondition();
1232 +        sync.acquire();
1233 +        assertTrue(c.awaitNanos(Long.MIN_VALUE) <= 0);
1234 +        assertFalse(c.await(Long.MIN_VALUE, NANOSECONDS));
1235 +        sync.release();
1236 +    }
1237 +
1238   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines