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

Comparing jsr166/src/test/tck/AtomicReferenceArrayTest.java (file contents):
Revision 1.34 by jsr166, Fri Jun 17 01:38:28 2016 UTC vs.
Revision 1.35 by jsr166, Fri Jun 17 19:00:48 2016 UTC

# Line 93 | Line 93 | public class AtomicReferenceArrayTest ex
93                  aa.weakCompareAndSet(index, null, null);
94                  shouldThrow();
95              } catch (IndexOutOfBoundsException success) {}
96            try {
97                aa.getPlain(index);
98                shouldThrow();
99            } catch (IndexOutOfBoundsException success) {}
100            try {
101                aa.getOpaque(index);
102                shouldThrow();
103            } catch (IndexOutOfBoundsException success) {}
104            try {
105                aa.getAcquire(index);
106                shouldThrow();
107            } catch (IndexOutOfBoundsException success) {}
108            try {
109                aa.setPlain(index, null);
110                shouldThrow();
111            } catch (IndexOutOfBoundsException success) {}
112            try {
113                aa.setOpaque(index, null);
114                shouldThrow();
115            } catch (IndexOutOfBoundsException success) {}
116            try {
117                aa.setRelease(index, null);
118                shouldThrow();
119            } catch (IndexOutOfBoundsException success) {}
120            try {
121                aa.compareAndExchange(index, null, null);
122                shouldThrow();
123            } catch (IndexOutOfBoundsException success) {}
124            try {
125                aa.compareAndExchangeAcquire(index, null, null);
126                shouldThrow();
127            } catch (IndexOutOfBoundsException success) {}
128            try {
129                aa.compareAndExchangeRelease(index, null, null);
130                shouldThrow();
131            } catch (IndexOutOfBoundsException success) {}
132            try {
133                aa.weakCompareAndSetVolatile(index, null, null);
134                shouldThrow();
135            } catch (IndexOutOfBoundsException success) {}
136            try {
137                aa.weakCompareAndSetAcquire(index, null, null);
138                shouldThrow();
139            } catch (IndexOutOfBoundsException success) {}
140            try {
141                aa.weakCompareAndSetRelease(index, null, null);
142                shouldThrow();
143            } catch (IndexOutOfBoundsException success) {}
96          }
97      }
98  
# Line 265 | Line 217 | public class AtomicReferenceArrayTest ex
217          assertEquals(Arrays.toString(a), aa.toString());
218      }
219  
268    // jdk9
269
270    /**
271     * getPlain returns the last value set
272     */
273    public void testGetPlainSet() {
274        AtomicReferenceArray<Integer> aa = new AtomicReferenceArray<Integer>(SIZE);
275        for (int i = 0; i < SIZE; i++) {
276            aa.set(i, one);
277            assertEquals(one, aa.getPlain(i));
278            aa.set(i, two);
279            assertEquals(two, aa.getPlain(i));
280            aa.set(i, m3);
281            assertEquals(m3, aa.getPlain(i));
282        }
283    }
284
285    /**
286     * getOpaque returns the last value set
287     */
288    public void testGetOpaqueSet() {
289        AtomicReferenceArray<Integer> aa = new AtomicReferenceArray<Integer>(SIZE);
290        for (int i = 0; i < SIZE; i++) {
291            aa.set(i, one);
292            assertEquals(one, aa.getOpaque(i));
293            aa.set(i, two);
294            assertEquals(two, aa.getOpaque(i));
295            aa.set(i, m3);
296            assertEquals(m3, aa.getOpaque(i));
297        }
298    }
299
300    /**
301     * getAcquire returns the last value set
302     */
303    public void testGetAcquireSet() {
304        AtomicReferenceArray<Integer> aa = new AtomicReferenceArray<Integer>(SIZE);
305        for (int i = 0; i < SIZE; i++) {
306            aa.set(i, one);
307            assertEquals(one, aa.getAcquire(i));
308            aa.set(i, two);
309            assertEquals(two, aa.getAcquire(i));
310            aa.set(i, m3);
311            assertEquals(m3, aa.getAcquire(i));
312        }
313    }
314
315    /**
316     * get returns the last value setPlain
317     */
318    public void testGetSetPlain() {
319        AtomicReferenceArray<Integer> aa = new AtomicReferenceArray<Integer>(SIZE);
320        for (int i = 0; i < SIZE; i++) {
321            aa.setPlain(i, one);
322            assertEquals(one, aa.get(i));
323            aa.setPlain(i, two);
324            assertEquals(two, aa.get(i));
325            aa.setPlain(i, m3);
326            assertEquals(m3, aa.get(i));
327        }
328    }
329
330    /**
331     * get returns the last value setOpaque
332     */
333    public void testGetSetOpaque() {
334        AtomicReferenceArray<Integer> aa = new AtomicReferenceArray<Integer>(SIZE);
335        for (int i = 0; i < SIZE; i++) {
336            aa.setOpaque(i, one);
337            assertEquals(one, aa.get(i));
338            aa.setOpaque(i, two);
339            assertEquals(two, aa.get(i));
340            aa.setOpaque(i, m3);
341            assertEquals(m3, aa.get(i));
342        }
343    }
344
345    /**
346     * get returns the last value setRelease
347     */
348    public void testGetSetRelease() {
349        AtomicReferenceArray<Integer> aa = new AtomicReferenceArray<Integer>(SIZE);
350        for (int i = 0; i < SIZE; i++) {
351            aa.setRelease(i, one);
352            assertEquals(one, aa.get(i));
353            aa.setRelease(i, two);
354            assertEquals(two, aa.get(i));
355            aa.setRelease(i, m3);
356            assertEquals(m3, aa.get(i));
357        }
358    }
359
360    /**
361     * compareAndExchange succeeds in changing value if equal to
362     * expected else fails
363     */
364    public void testCompareAndExchange() {
365        AtomicReferenceArray<Integer> aa = new AtomicReferenceArray<Integer>(SIZE);
366        for (int i = 0; i < SIZE; i++) {
367            aa.set(i, one);
368            assertEquals(one, aa.compareAndExchange(i, one, two));
369            assertEquals(two, aa.compareAndExchange(i, two, m4));
370            assertEquals(m4, aa.get(i));
371            assertEquals(m4, aa.compareAndExchange(i,m5, seven));
372            assertEquals(m4, aa.get(i));
373            assertEquals(m4, aa.compareAndExchange(i, m4, seven));
374            assertEquals(seven, aa.get(i));
375        }
376    }
377
378    /**
379     * compareAndExchangeAcquire succeeds in changing value if equal to
380     * expected else fails
381     */
382    public void testCompareAndExchangeAcquire() {
383        AtomicReferenceArray<Integer> aa = new AtomicReferenceArray<Integer>(SIZE);
384        for (int i = 0; i < SIZE; i++) {
385            aa.set(i, one);
386            assertEquals(one, aa.compareAndExchangeAcquire(i, one, two));
387            assertEquals(two, aa.compareAndExchangeAcquire(i, two, m4));
388            assertEquals(m4, aa.get(i));
389            assertEquals(m4, aa.compareAndExchangeAcquire(i,m5, seven));
390            assertEquals(m4, aa.get(i));
391            assertEquals(m4, aa.compareAndExchangeAcquire(i, m4, seven));
392            assertEquals(seven, aa.get(i));
393        }
394    }
395
396    /**
397     * compareAndExchangeRelease succeeds in changing value if equal to
398     * expected else fails
399     */
400    public void testCompareAndExchangeRelease() {
401        AtomicReferenceArray<Integer> aa = new AtomicReferenceArray<Integer>(SIZE);
402        for (int i = 0; i < SIZE; i++) {
403            aa.set(i, one);
404            assertEquals(one, aa.compareAndExchangeRelease(i, one, two));
405            assertEquals(two, aa.compareAndExchangeRelease(i, two, m4));
406            assertEquals(m4, aa.get(i));
407            assertEquals(m4, aa.compareAndExchangeRelease(i,m5, seven));
408            assertEquals(m4, aa.get(i));
409            assertEquals(m4, aa.compareAndExchangeRelease(i, m4, seven));
410            assertEquals(seven, aa.get(i));
411        }
412    }
413
414    /**
415     * repeated weakCompareAndSetVolatile succeeds in changing value when equal
416     * to expected
417     */
418    public void testWeakCompareAndSetVolatile() {
419        AtomicReferenceArray<Integer> aa = new AtomicReferenceArray<Integer>(SIZE);
420        for (int i = 0; i < SIZE; i++) {
421            aa.set(i, one);
422            do {} while (!aa.weakCompareAndSetVolatile(i, one, two));
423            do {} while (!aa.weakCompareAndSetVolatile(i, two, m4));
424            assertEquals(m4, aa.get(i));
425            do {} while (!aa.weakCompareAndSetVolatile(i, m4, seven));
426            assertEquals(seven, aa.get(i));
427        }
428    }
429
430    /**
431     * repeated weakCompareAndSetAcquire succeeds in changing value when equal
432     * to expected
433     */
434    public void testWeakCompareAndSetAcquire() {
435        AtomicReferenceArray<Integer> aa = new AtomicReferenceArray<Integer>(SIZE);
436        for (int i = 0; i < SIZE; i++) {
437            aa.set(i, one);
438            do {} while (!aa.weakCompareAndSetAcquire(i, one, two));
439            do {} while (!aa.weakCompareAndSetAcquire(i, two, m4));
440            assertEquals(m4, aa.get(i));
441            do {} while (!aa.weakCompareAndSetAcquire(i, m4, seven));
442            assertEquals(seven, aa.get(i));
443        }
444    }
445
446    /**
447     * repeated weakCompareAndSetRelease succeeds in changing value when equal
448     * to expected
449     */
450    public void testWeakCompareAndSetRelease() {
451        AtomicReferenceArray<Integer> aa = new AtomicReferenceArray<Integer>(SIZE);
452        for (int i = 0; i < SIZE; i++) {
453            aa.set(i, one);
454            do {} while (!aa.weakCompareAndSetRelease(i, one, two));
455            do {} while (!aa.weakCompareAndSetRelease(i, two, m4));
456            assertEquals(m4, aa.get(i));
457            do {} while (!aa.weakCompareAndSetRelease(i, m4, seven));
458            assertEquals(seven, aa.get(i));
459        }
460    }
461
220   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines