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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.4, Sat Sep 20 18:20:07 2003 UTC revision 1.5, Thu Sep 25 11:02:41 2003 UTC
# Line 20  Line 20 
20    
21    
22      /**      /**
23       *       * constructor creates array of given size with all elements zero
24       */       */
25      public void testConstructor() {      public void testConstructor() {
26          AtomicIntegerArray ai = new AtomicIntegerArray(SIZE);          AtomicIntegerArray ai = new AtomicIntegerArray(SIZE);
# Line 29  Line 29 
29      }      }
30    
31      /**      /**
32       *       * get and set for out of bound indices throw IndexOutOfBoundsException
33         */
34        public void testIndexing(){
35            AtomicIntegerArray ai = new AtomicIntegerArray(SIZE);
36            try {
37                ai.get(SIZE);
38            } catch(IndexOutOfBoundsException success){
39            }
40            try {
41                ai.get(-1);
42            } catch(IndexOutOfBoundsException success){
43            }
44            try {
45                ai.set(SIZE, 0);
46            } catch(IndexOutOfBoundsException success){
47            }
48            try {
49                ai.set(-1, 0);
50            } catch(IndexOutOfBoundsException success){
51            }
52        }
53    
54        /**
55         * get returns the last value set at index
56       */       */
57      public void testGetSet() {      public void testGetSet() {
58          AtomicIntegerArray ai = new AtomicIntegerArray(SIZE);          AtomicIntegerArray ai = new AtomicIntegerArray(SIZE);
# Line 44  Line 67 
67      }      }
68    
69      /**      /**
70       *       * compareAndSet succeeds in changing value if equal to expected else fails
71       */       */
72      public void testCompareAndSet() {      public void testCompareAndSet() {
73          AtomicIntegerArray ai = new AtomicIntegerArray(SIZE);          AtomicIntegerArray ai = new AtomicIntegerArray(SIZE);
# Line 61  Line 84 
84      }      }
85    
86      /**      /**
87       *       * compareAndSet in one thread enables another waiting for value
88         * to succeed
89         */
90        public void testCompareAndSetInMultipleThreads() {
91            final AtomicIntegerArray a = new AtomicIntegerArray(1);
92            a.set(0, 1);
93            Thread t = new Thread(new Runnable() {
94                    public void run() {
95                        while(!a.compareAndSet(0, 2, 3)) Thread.yield();
96                    }});
97            try {
98                t.start();
99                assertTrue(a.compareAndSet(0, 1, 2));
100                t.join(LONG_DELAY_MS);
101                assertFalse(t.isAlive());
102                assertEquals(a.get(0), 3);
103            }
104            catch(Exception e) {
105                unexpectedException();
106            }
107        }
108    
109        /**
110         * repeated weakCompareAndSet succeeds in changing value when equal
111         * to expected
112       */       */
113      public void testWeakCompareAndSet() {      public void testWeakCompareAndSet() {
114          AtomicIntegerArray ai = new AtomicIntegerArray(SIZE);          AtomicIntegerArray ai = new AtomicIntegerArray(SIZE);
# Line 76  Line 123 
123      }      }
124    
125      /**      /**
126       *       *  getAndSet returns previous value and sets to given value at given index
127       */       */
128      public void testGetAndSet() {      public void testGetAndSet() {
129          AtomicIntegerArray ai = new AtomicIntegerArray(SIZE);          AtomicIntegerArray ai = new AtomicIntegerArray(SIZE);
# Line 89  Line 136 
136      }      }
137    
138      /**      /**
139       *       *  getAndAdd returns previous value and adds given value
140       */       */
141      public void testGetAndAdd() {      public void testGetAndAdd() {
142          AtomicIntegerArray ai = new AtomicIntegerArray(SIZE);          AtomicIntegerArray ai = new AtomicIntegerArray(SIZE);
# Line 103  Line 150 
150      }      }
151    
152      /**      /**
153       *       * getAndDecrement returns previous value and decrements
154       */       */
155      public void testGetAndDecrement() {      public void testGetAndDecrement() {
156          AtomicIntegerArray ai = new AtomicIntegerArray(SIZE);          AtomicIntegerArray ai = new AtomicIntegerArray(SIZE);
# Line 116  Line 163 
163      }      }
164    
165      /**      /**
166       *       * getAndIncrement returns previous value and increments
167       */       */
168      public void testGetAndIncrement() {      public void testGetAndIncrement() {
169          AtomicIntegerArray ai = new AtomicIntegerArray(SIZE);          AtomicIntegerArray ai = new AtomicIntegerArray(SIZE);
# Line 133  Line 180 
180      }      }
181    
182      /**      /**
183       *       *  addAndGet adds given value to current, and returns current value
184       */       */
185      public void testAddAndGet() {      public void testAddAndGet() {
186          AtomicIntegerArray ai = new AtomicIntegerArray(SIZE);          AtomicIntegerArray ai = new AtomicIntegerArray(SIZE);
# Line 147  Line 194 
194      }      }
195    
196      /**      /**
197       *       * decrementAndGet decrements and returns current value
198       */       */
199      public void testDecrementAndGet() {      public void testDecrementAndGet() {
200          AtomicIntegerArray ai = new AtomicIntegerArray(SIZE);          AtomicIntegerArray ai = new AtomicIntegerArray(SIZE);
# Line 161  Line 208 
208      }      }
209    
210      /**      /**
211       *       *  incrementAndGet increments and returns current value
212       */       */
213      public void testIncrementAndGet() {      public void testIncrementAndGet() {
214          AtomicIntegerArray ai = new AtomicIntegerArray(SIZE);          AtomicIntegerArray ai = new AtomicIntegerArray(SIZE);
# Line 202  Line 249 
249      }      }
250    
251      /**      /**
252       *       * Multiple threads using same array of counters successfully
253         * update a number of times equal to total count
254       */       */
255      public void testCountingInMultipleThreads() {      public void testCountingInMultipleThreads() {
256          try {          try {
# Line 226  Line 274 
274    
275    
276      /**      /**
277       *       * a deserialized serialized array holds same values
278       */       */
279      public void testSerialization() {      public void testSerialization() {
280          AtomicIntegerArray l = new AtomicIntegerArray(SIZE);          AtomicIntegerArray l = new AtomicIntegerArray(SIZE);

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8