[cvs] / jsr166 / src / test / tck / AtomicIntegerArrayTest.java Repository:
ViewVC logotype

Annotation of /jsr166/src/test/tck/AtomicIntegerArrayTest.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (view) (download)

1 : dl 1.1 /*
2 :     * Written by members of JCP JSR-166 Expert Group and released to the
3 :     * public domain. Use, modify, and redistribute this code in any way
4 :     * without acknowledgement. Other contributors include Andrew Wright,
5 :     * Jeffrey Hayes, Pat Fischer, Mike Judd.
6 :     */
7 :    
8 :     import junit.framework.*;
9 :     import java.util.concurrent.atomic.*;
10 :    
11 :     public class AtomicIntegerArrayTest extends TestCase
12 :     {
13 :     static final int N = 10;
14 :    
15 :     public static void main (String[] args) {
16 :     junit.textui.TestRunner.run (suite());
17 :     }
18 :     public static Test suite() {
19 :     return new TestSuite(AtomicIntegerArrayTest.class);
20 :     }
21 :    
22 :     public void testConstructor(){
23 :     AtomicIntegerArray ai = new AtomicIntegerArray(N);
24 :     for (int i = 0; i < N; ++i)
25 :     assertEquals(0,ai.get(i));
26 :     }
27 :    
28 :     public void testGetSet(){
29 :     AtomicIntegerArray ai = new AtomicIntegerArray(N);
30 :     for (int i = 0; i < N; ++i) {
31 :     ai.set(i, 1);
32 :     assertEquals(1,ai.get(i));
33 :     ai.set(i, 2);
34 :     assertEquals(2,ai.get(i));
35 :     ai.set(i, -3);
36 :     assertEquals(-3,ai.get(i));
37 :     }
38 :     }
39 :    
40 :     public void testCompareAndSet(){
41 :     AtomicIntegerArray ai = new AtomicIntegerArray(N);
42 :     for (int i = 0; i < N; ++i) {
43 :     ai.set(i, 1);
44 :     assertTrue(ai.compareAndSet(i, 1,2));
45 :     assertTrue(ai.compareAndSet(i, 2,-4));
46 :     assertEquals(-4,ai.get(i));
47 :     assertFalse(ai.compareAndSet(i, -5,7));
48 :     assertFalse((7 == ai.get(i)));
49 :     assertTrue(ai.compareAndSet(i, -4,7));
50 :     assertEquals(7,ai.get(i));
51 :     }
52 :     }
53 :    
54 :     public void testWeakCompareAndSet(){
55 :     AtomicIntegerArray ai = new AtomicIntegerArray(N);
56 :     for (int i = 0; i < N; ++i) {
57 :     ai.set(i, 1);
58 :     while(!ai.weakCompareAndSet(i, 1,2));
59 :     while(!ai.weakCompareAndSet(i, 2,-4));
60 :     assertEquals(-4,ai.get(i));
61 :     while(!ai.weakCompareAndSet(i, -4,7));
62 :     assertEquals(7,ai.get(i));
63 :     }
64 :     }
65 :    
66 :     public void testGetAndSet(){
67 :     AtomicIntegerArray ai = new AtomicIntegerArray(N);
68 :     for (int i = 0; i < N; ++i) {
69 :     ai.set(i, 1);
70 :     assertEquals(1,ai.getAndSet(i,0));
71 :     assertEquals(0,ai.getAndSet(i,-10));
72 :     assertEquals(-10,ai.getAndSet(i,1));
73 :     }
74 :     }
75 :    
76 :     public void testGetAndAdd(){
77 :     AtomicIntegerArray ai = new AtomicIntegerArray(N);
78 :     for (int i = 0; i < N; ++i) {
79 :     ai.set(i, 1);
80 :     assertEquals(1,ai.getAndAdd(i,2));
81 :     assertEquals(3,ai.get(i));
82 :     assertEquals(3,ai.getAndAdd(i,-4));
83 :     assertEquals(-1,ai.get(i));
84 :     }
85 :     }
86 :    
87 :     public void testGetAndDecrement(){
88 :     AtomicIntegerArray ai = new AtomicIntegerArray(N);
89 :     for (int i = 0; i < N; ++i) {
90 :     ai.set(i, 1);
91 :     assertEquals(1,ai.getAndDecrement(i));
92 :     assertEquals(0,ai.getAndDecrement(i));
93 :     assertEquals(-1,ai.getAndDecrement(i));
94 :     }
95 :     }
96 :    
97 :     public void testGetAndIncrement(){
98 :     AtomicIntegerArray ai = new AtomicIntegerArray(N);
99 :     for (int i = 0; i < N; ++i) {
100 :     ai.set(i, 1);
101 :     assertEquals(1,ai.getAndIncrement(i));
102 :     assertEquals(2,ai.get(i));
103 :     ai.set(i,-2);
104 :     assertEquals(-2,ai.getAndIncrement(i));
105 :     assertEquals(-1,ai.getAndIncrement(i));
106 :     assertEquals(0,ai.getAndIncrement(i));
107 :     assertEquals(1,ai.get(i));
108 :     }
109 :     }
110 :    
111 :     public void testAddAndGet() {
112 :     AtomicIntegerArray ai = new AtomicIntegerArray(N);
113 :     for (int i = 0; i < N; ++i) {
114 :     ai.set(i, 1);
115 :     assertEquals(3,ai.addAndGet(i,2));
116 :     assertEquals(3,ai.get(i));
117 :     assertEquals(-1,ai.addAndGet(i,-4));
118 :     assertEquals(-1,ai.get(i));
119 :     }
120 :     }
121 :    
122 :     public void testDecrementAndGet(){
123 :     AtomicIntegerArray ai = new AtomicIntegerArray(N);
124 :     for (int i = 0; i < N; ++i) {
125 :     ai.set(i, 1);
126 :     assertEquals(0,ai.decrementAndGet(i));
127 :     assertEquals(-1,ai.decrementAndGet(i));
128 :     assertEquals(-2,ai.decrementAndGet(i));
129 :     assertEquals(-2,ai.get(i));
130 :     }
131 :     }
132 :    
133 :     public void testIncrementAndGet() {
134 :     AtomicIntegerArray ai = new AtomicIntegerArray(N);
135 :     for (int i = 0; i < N; ++i) {
136 :     ai.set(i, 1);
137 :     assertEquals(2,ai.incrementAndGet(i));
138 :     assertEquals(2,ai.get(i));
139 :     ai.set(i, -2);
140 :     assertEquals(-1,ai.incrementAndGet(i));
141 :     assertEquals(0,ai.incrementAndGet(i));
142 :     assertEquals(1,ai.incrementAndGet(i));
143 :     assertEquals(1,ai.get(i));
144 :     }
145 :     }
146 :    
147 :     }

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8