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

Comparing jsr166/src/test/tck/AtomicLongArray9Test.java (file contents):
Revision 1.2 by jsr166, Wed Aug 24 22:22:39 2016 UTC vs.
Revision 1.3 by jsr166, Tue Oct 11 20:38:07 2016 UTC

# Line 34 | Line 34 | public class AtomicLongArray9Test extend
34                  () -> aa.compareAndExchange(j, 1, 2),
35                  () -> aa.compareAndExchangeAcquire(j, 1, 2),
36                  () -> aa.compareAndExchangeRelease(j, 1, 2),
37 +                () -> aa.weakCompareAndSetPlain(j, 1, 2),
38                  () -> aa.weakCompareAndSetVolatile(j, 1, 2),
39                  () -> aa.weakCompareAndSetAcquire(j, 1, 2),
40                  () -> aa.weakCompareAndSetRelease(j, 1, 2),
# Line 186 | Line 187 | public class AtomicLongArray9Test extend
187              assertEquals(7, aa.get(i));
188          }
189      }
190 +
191 +    /**
192 +     * repeated weakCompareAndSetPlain succeeds in changing value when equal
193 +     * to expected
194 +     */
195 +    public void testWeakCompareAndSetPlain() {
196 +        AtomicLongArray aa = new AtomicLongArray(SIZE);
197 +        for (int i = 0; i < SIZE; i++) {
198 +            aa.set(i, 1);
199 +            do {} while (!aa.weakCompareAndSetPlain(i, 1, 2));
200 +            do {} while (!aa.weakCompareAndSetPlain(i, 2, -4));
201 +            assertEquals(-4, aa.get(i));
202 +            do {} while (!aa.weakCompareAndSetPlain(i, -4, 7));
203 +            assertEquals(7, aa.get(i));
204 +        }
205 +    }
206  
207      /**
208       * repeated weakCompareAndSetVolatile succeeds in changing value when equal

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines