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

Comparing jsr166/src/test/tck/StampedLockTest.java (file contents):
Revision 1.17 by jsr166, Tue Jun 7 02:04:47 2016 UTC vs.
Revision 1.20 by jsr166, Tue Jun 7 07:20:09 2016 UTC

# Line 718 | Line 718 | public class StampedLockTest extends JSR
718      public void testTryConvertToOptimisticRead() throws InterruptedException {
719          StampedLock lock = new StampedLock();
720          long s, p;
721 <        s = 0L;
722 <        assertFalse((p = lock.tryConvertToOptimisticRead(s)) != 0L);
721 >        assertEquals(0L, lock.tryConvertToOptimisticRead(0L));
722 >
723          assertTrue((s = lock.tryOptimisticRead()) != 0L);
724 <        assertTrue((p = lock.tryConvertToOptimisticRead(s)) != 0L);
724 >        assertEquals(s, lock.tryConvertToOptimisticRead(s));
725 >        assertTrue(lock.validate(s));
726 >
727 >        assertTrue((p = lock.readLock()) != 0L);
728 >        assertTrue((s = lock.tryOptimisticRead()) != 0L);
729 >        assertEquals(s, lock.tryConvertToOptimisticRead(s));
730 >        assertTrue(lock.validate(s));
731 >        lock.unlockRead(p);
732 >
733          assertTrue((s = lock.writeLock()) != 0L);
734          assertTrue((p = lock.tryConvertToOptimisticRead(s)) != 0L);
735          assertTrue(lock.validate(p));
736 +
737          assertTrue((s = lock.readLock()) != 0L);
738          assertTrue(lock.validate(s));
739          assertTrue((p = lock.tryConvertToOptimisticRead(s)) != 0L);
740          assertTrue(lock.validate(p));
741 +
742          assertTrue((s = lock.tryWriteLock()) != 0L);
743          assertTrue(lock.validate(s));
744          assertTrue((p = lock.tryConvertToOptimisticRead(s)) != 0L);
745          assertTrue(lock.validate(p));
746 +
747          assertTrue((s = lock.tryReadLock()) != 0L);
748          assertTrue(lock.validate(s));
749          assertTrue((p = lock.tryConvertToOptimisticRead(s)) != 0L);
750          assertTrue(lock.validate(p));
751 +
752          assertTrue((s = lock.tryWriteLock(100L, MILLISECONDS)) != 0L);
753          assertTrue((p = lock.tryConvertToOptimisticRead(s)) != 0L);
754          assertTrue(lock.validate(p));
755 +
756          assertTrue((s = lock.tryReadLock(100L, MILLISECONDS)) != 0L);
757          assertTrue(lock.validate(s));
758          assertTrue((p = lock.tryConvertToOptimisticRead(s)) != 0L);
# Line 972 | Line 985 | public class StampedLockTest extends JSR
985              },
986              () -> {
987                  StampedLock sl = new StampedLock();
988 +                sl.readLock();
989 +                long stamp = sl.tryConvertToOptimisticRead(sl.readLock());
990 +                assertTrue(stamp != 0);
991 +                sl.readLock();
992 +                sl.unlockRead(stamp);
993 +            },
994 +            () -> {
995 +                StampedLock sl = new StampedLock();
996 +                long stamp = sl.tryConvertToOptimisticRead(sl.readLock());
997 +                sl.readLock();
998 +                sl.unlock(stamp);
999 +            },
1000 +            () -> {
1001 +                StampedLock sl = new StampedLock();
1002 +                sl.readLock();
1003                  long stamp = sl.tryConvertToOptimisticRead(sl.readLock());
1004                  sl.readLock();
1005                  sl.unlock(stamp);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines