--- jsr166/src/test/tck/AtomicLongArray9Test.java 2016/06/17 19:00:48 1.1 +++ jsr166/src/test/tck/AtomicLongArray9Test.java 2016/10/11 20:38:07 1.3 @@ -4,7 +4,6 @@ * http://creativecommons.org/publicdomain/zero/1.0/ */ -import java.util.Arrays; import java.util.concurrent.atomic.AtomicLongArray; import junit.framework.Test; @@ -35,6 +34,7 @@ public class AtomicLongArray9Test extend () -> aa.compareAndExchange(j, 1, 2), () -> aa.compareAndExchangeAcquire(j, 1, 2), () -> aa.compareAndExchangeRelease(j, 1, 2), + () -> aa.weakCompareAndSetPlain(j, 1, 2), () -> aa.weakCompareAndSetVolatile(j, 1, 2), () -> aa.weakCompareAndSetAcquire(j, 1, 2), () -> aa.weakCompareAndSetRelease(j, 1, 2), @@ -187,6 +187,22 @@ public class AtomicLongArray9Test extend assertEquals(7, aa.get(i)); } } + + /** + * repeated weakCompareAndSetPlain succeeds in changing value when equal + * to expected + */ + public void testWeakCompareAndSetPlain() { + AtomicLongArray aa = new AtomicLongArray(SIZE); + for (int i = 0; i < SIZE; i++) { + aa.set(i, 1); + do {} while (!aa.weakCompareAndSetPlain(i, 1, 2)); + do {} while (!aa.weakCompareAndSetPlain(i, 2, -4)); + assertEquals(-4, aa.get(i)); + do {} while (!aa.weakCompareAndSetPlain(i, -4, 7)); + assertEquals(7, aa.get(i)); + } + } /** * repeated weakCompareAndSetVolatile succeeds in changing value when equal