--- jsr166/src/test/tck/AtomicReferenceArrayTest.java 2016/06/17 01:38:28 1.34 +++ jsr166/src/test/tck/AtomicReferenceArrayTest.java 2017/08/04 03:30:21 1.37 @@ -24,7 +24,7 @@ public class AtomicReferenceArrayTest ex * constructor creates array of given size with all elements null */ public void testConstructor() { - AtomicReferenceArray aa = new AtomicReferenceArray(SIZE); + AtomicReferenceArray aa = new AtomicReferenceArray<>(SIZE); for (int i = 0; i < SIZE; i++) { assertNull(aa.get(i)); } @@ -46,7 +46,7 @@ public class AtomicReferenceArrayTest ex */ public void testConstructor2() { Integer[] a = { two, one, three, four, seven }; - AtomicReferenceArray aa = new AtomicReferenceArray(a); + AtomicReferenceArray aa = new AtomicReferenceArray<>(a); assertEquals(a.length, aa.length()); for (int i = 0; i < a.length; i++) assertEquals(a[i], aa.get(i)); @@ -71,7 +71,7 @@ public class AtomicReferenceArrayTest ex * get and set for out of bound indices throw IndexOutOfBoundsException */ public void testIndexing() { - AtomicReferenceArray aa = new AtomicReferenceArray(SIZE); + AtomicReferenceArray aa = new AtomicReferenceArray<>(SIZE); for (int index : new int[] { -1, SIZE }) { try { aa.get(index); @@ -93,54 +93,6 @@ public class AtomicReferenceArrayTest ex aa.weakCompareAndSet(index, null, null); shouldThrow(); } catch (IndexOutOfBoundsException success) {} - try { - aa.getPlain(index); - shouldThrow(); - } catch (IndexOutOfBoundsException success) {} - try { - aa.getOpaque(index); - shouldThrow(); - } catch (IndexOutOfBoundsException success) {} - try { - aa.getAcquire(index); - shouldThrow(); - } catch (IndexOutOfBoundsException success) {} - try { - aa.setPlain(index, null); - shouldThrow(); - } catch (IndexOutOfBoundsException success) {} - try { - aa.setOpaque(index, null); - shouldThrow(); - } catch (IndexOutOfBoundsException success) {} - try { - aa.setRelease(index, null); - shouldThrow(); - } catch (IndexOutOfBoundsException success) {} - try { - aa.compareAndExchange(index, null, null); - shouldThrow(); - } catch (IndexOutOfBoundsException success) {} - try { - aa.compareAndExchangeAcquire(index, null, null); - shouldThrow(); - } catch (IndexOutOfBoundsException success) {} - try { - aa.compareAndExchangeRelease(index, null, null); - shouldThrow(); - } catch (IndexOutOfBoundsException success) {} - try { - aa.weakCompareAndSetVolatile(index, null, null); - shouldThrow(); - } catch (IndexOutOfBoundsException success) {} - try { - aa.weakCompareAndSetAcquire(index, null, null); - shouldThrow(); - } catch (IndexOutOfBoundsException success) {} - try { - aa.weakCompareAndSetRelease(index, null, null); - shouldThrow(); - } catch (IndexOutOfBoundsException success) {} } } @@ -241,7 +193,7 @@ public class AtomicReferenceArrayTest ex } /** - * a deserialized serialized array holds same values + * a deserialized/reserialized array holds same values in same order */ public void testSerialization() throws Exception { AtomicReferenceArray x = new AtomicReferenceArray(SIZE); @@ -261,202 +213,8 @@ public class AtomicReferenceArrayTest ex */ public void testToString() { Integer[] a = { two, one, three, four, seven }; - AtomicReferenceArray aa = new AtomicReferenceArray(a); + AtomicReferenceArray aa = new AtomicReferenceArray<>(a); assertEquals(Arrays.toString(a), aa.toString()); } - // jdk9 - - /** - * getPlain returns the last value set - */ - public void testGetPlainSet() { - AtomicReferenceArray aa = new AtomicReferenceArray(SIZE); - for (int i = 0; i < SIZE; i++) { - aa.set(i, one); - assertEquals(one, aa.getPlain(i)); - aa.set(i, two); - assertEquals(two, aa.getPlain(i)); - aa.set(i, m3); - assertEquals(m3, aa.getPlain(i)); - } - } - - /** - * getOpaque returns the last value set - */ - public void testGetOpaqueSet() { - AtomicReferenceArray aa = new AtomicReferenceArray(SIZE); - for (int i = 0; i < SIZE; i++) { - aa.set(i, one); - assertEquals(one, aa.getOpaque(i)); - aa.set(i, two); - assertEquals(two, aa.getOpaque(i)); - aa.set(i, m3); - assertEquals(m3, aa.getOpaque(i)); - } - } - - /** - * getAcquire returns the last value set - */ - public void testGetAcquireSet() { - AtomicReferenceArray aa = new AtomicReferenceArray(SIZE); - for (int i = 0; i < SIZE; i++) { - aa.set(i, one); - assertEquals(one, aa.getAcquire(i)); - aa.set(i, two); - assertEquals(two, aa.getAcquire(i)); - aa.set(i, m3); - assertEquals(m3, aa.getAcquire(i)); - } - } - - /** - * get returns the last value setPlain - */ - public void testGetSetPlain() { - AtomicReferenceArray aa = new AtomicReferenceArray(SIZE); - for (int i = 0; i < SIZE; i++) { - aa.setPlain(i, one); - assertEquals(one, aa.get(i)); - aa.setPlain(i, two); - assertEquals(two, aa.get(i)); - aa.setPlain(i, m3); - assertEquals(m3, aa.get(i)); - } - } - - /** - * get returns the last value setOpaque - */ - public void testGetSetOpaque() { - AtomicReferenceArray aa = new AtomicReferenceArray(SIZE); - for (int i = 0; i < SIZE; i++) { - aa.setOpaque(i, one); - assertEquals(one, aa.get(i)); - aa.setOpaque(i, two); - assertEquals(two, aa.get(i)); - aa.setOpaque(i, m3); - assertEquals(m3, aa.get(i)); - } - } - - /** - * get returns the last value setRelease - */ - public void testGetSetRelease() { - AtomicReferenceArray aa = new AtomicReferenceArray(SIZE); - for (int i = 0; i < SIZE; i++) { - aa.setRelease(i, one); - assertEquals(one, aa.get(i)); - aa.setRelease(i, two); - assertEquals(two, aa.get(i)); - aa.setRelease(i, m3); - assertEquals(m3, aa.get(i)); - } - } - - /** - * compareAndExchange succeeds in changing value if equal to - * expected else fails - */ - public void testCompareAndExchange() { - AtomicReferenceArray aa = new AtomicReferenceArray(SIZE); - for (int i = 0; i < SIZE; i++) { - aa.set(i, one); - assertEquals(one, aa.compareAndExchange(i, one, two)); - assertEquals(two, aa.compareAndExchange(i, two, m4)); - assertEquals(m4, aa.get(i)); - assertEquals(m4, aa.compareAndExchange(i,m5, seven)); - assertEquals(m4, aa.get(i)); - assertEquals(m4, aa.compareAndExchange(i, m4, seven)); - assertEquals(seven, aa.get(i)); - } - } - - /** - * compareAndExchangeAcquire succeeds in changing value if equal to - * expected else fails - */ - public void testCompareAndExchangeAcquire() { - AtomicReferenceArray aa = new AtomicReferenceArray(SIZE); - for (int i = 0; i < SIZE; i++) { - aa.set(i, one); - assertEquals(one, aa.compareAndExchangeAcquire(i, one, two)); - assertEquals(two, aa.compareAndExchangeAcquire(i, two, m4)); - assertEquals(m4, aa.get(i)); - assertEquals(m4, aa.compareAndExchangeAcquire(i,m5, seven)); - assertEquals(m4, aa.get(i)); - assertEquals(m4, aa.compareAndExchangeAcquire(i, m4, seven)); - assertEquals(seven, aa.get(i)); - } - } - - /** - * compareAndExchangeRelease succeeds in changing value if equal to - * expected else fails - */ - public void testCompareAndExchangeRelease() { - AtomicReferenceArray aa = new AtomicReferenceArray(SIZE); - for (int i = 0; i < SIZE; i++) { - aa.set(i, one); - assertEquals(one, aa.compareAndExchangeRelease(i, one, two)); - assertEquals(two, aa.compareAndExchangeRelease(i, two, m4)); - assertEquals(m4, aa.get(i)); - assertEquals(m4, aa.compareAndExchangeRelease(i,m5, seven)); - assertEquals(m4, aa.get(i)); - assertEquals(m4, aa.compareAndExchangeRelease(i, m4, seven)); - assertEquals(seven, aa.get(i)); - } - } - - /** - * repeated weakCompareAndSetVolatile succeeds in changing value when equal - * to expected - */ - public void testWeakCompareAndSetVolatile() { - AtomicReferenceArray aa = new AtomicReferenceArray(SIZE); - for (int i = 0; i < SIZE; i++) { - aa.set(i, one); - do {} while (!aa.weakCompareAndSetVolatile(i, one, two)); - do {} while (!aa.weakCompareAndSetVolatile(i, two, m4)); - assertEquals(m4, aa.get(i)); - do {} while (!aa.weakCompareAndSetVolatile(i, m4, seven)); - assertEquals(seven, aa.get(i)); - } - } - - /** - * repeated weakCompareAndSetAcquire succeeds in changing value when equal - * to expected - */ - public void testWeakCompareAndSetAcquire() { - AtomicReferenceArray aa = new AtomicReferenceArray(SIZE); - for (int i = 0; i < SIZE; i++) { - aa.set(i, one); - do {} while (!aa.weakCompareAndSetAcquire(i, one, two)); - do {} while (!aa.weakCompareAndSetAcquire(i, two, m4)); - assertEquals(m4, aa.get(i)); - do {} while (!aa.weakCompareAndSetAcquire(i, m4, seven)); - assertEquals(seven, aa.get(i)); - } - } - - /** - * repeated weakCompareAndSetRelease succeeds in changing value when equal - * to expected - */ - public void testWeakCompareAndSetRelease() { - AtomicReferenceArray aa = new AtomicReferenceArray(SIZE); - for (int i = 0; i < SIZE; i++) { - aa.set(i, one); - do {} while (!aa.weakCompareAndSetRelease(i, one, two)); - do {} while (!aa.weakCompareAndSetRelease(i, two, m4)); - assertEquals(m4, aa.get(i)); - do {} while (!aa.weakCompareAndSetRelease(i, m4, seven)); - assertEquals(seven, aa.get(i)); - } - } - }