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

Comparing jsr166/src/test/tck/AtomicIntegerFieldUpdaterTest.java (file contents):
Revision 1.13 by jsr166, Tue Nov 17 03:12:51 2009 UTC vs.
Revision 1.20 by jsr166, Fri May 27 19:39:07 2011 UTC

# Line 1 | Line 1
1   /*
2   * Written by Doug Lea with assistance from members of JCP JSR-166
3   * Expert Group and released to the public domain, as explained at
4 < * http://creativecommons.org/licenses/publicdomain
4 > * http://creativecommons.org/publicdomain/zero/1.0/
5   * Other contributors include Andrew Wright, Jeffrey Hayes,
6   * Pat Fisher, Mike Judd.
7   */
# Line 30 | Line 30 | public class AtomicIntegerFieldUpdaterTe
30                  a = AtomicIntegerFieldUpdater.newUpdater
31                  (AtomicIntegerFieldUpdaterTest.class, "y");
32              shouldThrow();
33 <        }
34 <        catch (RuntimeException rt) {}
33 >        } catch (RuntimeException success) {}
34      }
35  
36      /**
# Line 43 | Line 42 | public class AtomicIntegerFieldUpdaterTe
42                  a = AtomicIntegerFieldUpdater.newUpdater
43                  (AtomicIntegerFieldUpdaterTest.class, "z");
44              shouldThrow();
45 <        }
47 <        catch (RuntimeException rt) {}
45 >        } catch (RuntimeException success) {}
46      }
47  
48      /**
# Line 56 | Line 54 | public class AtomicIntegerFieldUpdaterTe
54                  a = AtomicIntegerFieldUpdater.newUpdater
55                  (AtomicIntegerFieldUpdaterTest.class, "w");
56              shouldThrow();
57 <        }
60 <        catch (RuntimeException rt) {}
57 >        } catch (RuntimeException success) {}
58      }
59  
60      /**
61 <     *  get returns the last value set or assigned
61 >     * get returns the last value set or assigned
62       */
63      public void testGetSet() {
64          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
# Line 71 | Line 68 | public class AtomicIntegerFieldUpdaterTe
68              return;
69          }
70          x = 1;
71 <        assertEquals(1,a.get(this));
72 <        a.set(this,2);
73 <        assertEquals(2,a.get(this));
74 <        a.set(this,-3);
75 <        assertEquals(-3,a.get(this));
79 <
71 >        assertEquals(1,a.get(this));
72 >        a.set(this,2);
73 >        assertEquals(2,a.get(this));
74 >        a.set(this,-3);
75 >        assertEquals(-3,a.get(this));
76      }
77  
78      /**
79 <     *  get returns the last value lazySet by same thread
79 >     * get returns the last value lazySet by same thread
80       */
81      public void testGetLazySet() {
82          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
# Line 90 | Line 86 | public class AtomicIntegerFieldUpdaterTe
86              return;
87          }
88          x = 1;
89 <        assertEquals(1,a.get(this));
90 <        a.lazySet(this,2);
91 <        assertEquals(2,a.get(this));
92 <        a.lazySet(this,-3);
93 <        assertEquals(-3,a.get(this));
98 <
89 >        assertEquals(1,a.get(this));
90 >        a.lazySet(this,2);
91 >        assertEquals(2,a.get(this));
92 >        a.lazySet(this,-3);
93 >        assertEquals(-3,a.get(this));
94      }
95  
96      /**
# Line 109 | Line 104 | public class AtomicIntegerFieldUpdaterTe
104              return;
105          }
106          x = 1;
107 <        assertTrue(a.compareAndSet(this,1,2));
108 <        assertTrue(a.compareAndSet(this,2,-4));
109 <        assertEquals(-4,a.get(this));
110 <        assertFalse(a.compareAndSet(this,-5,7));
111 <        assertFalse((7 == a.get(this)));
112 <        assertTrue(a.compareAndSet(this,-4,7));
113 <        assertEquals(7,a.get(this));
107 >        assertTrue(a.compareAndSet(this,1,2));
108 >        assertTrue(a.compareAndSet(this,2,-4));
109 >        assertEquals(-4,a.get(this));
110 >        assertFalse(a.compareAndSet(this,-5,7));
111 >        assertEquals(-4,a.get(this));
112 >        assertTrue(a.compareAndSet(this,-4,7));
113 >        assertEquals(7,a.get(this));
114      }
115  
121
116      /**
117       * compareAndSet in one thread enables another waiting for value
118       * to succeed
# Line 132 | Line 126 | public class AtomicIntegerFieldUpdaterTe
126              return;
127          }
128  
129 <        Thread t = new Thread(new Runnable() {
130 <                public void run() {
131 <                    while (!a.compareAndSet(AtomicIntegerFieldUpdaterTest.this, 2, 3)) Thread.yield();
132 <                }});
129 >        Thread t = new Thread(new CheckedRunnable() {
130 >            public void realRun() {
131 >                while (!a.compareAndSet(AtomicIntegerFieldUpdaterTest.this, 2, 3))
132 >                    Thread.yield();
133 >            }});
134  
135          t.start();
136          assertTrue(a.compareAndSet(this, 1, 2));
# Line 156 | Line 151 | public class AtomicIntegerFieldUpdaterTe
151              return;
152          }
153          x = 1;
154 <        while (!a.weakCompareAndSet(this,1,2));
155 <        while (!a.weakCompareAndSet(this,2,-4));
156 <        assertEquals(-4,a.get(this));
157 <        while (!a.weakCompareAndSet(this,-4,7));
158 <        assertEquals(7,a.get(this));
154 >        while (!a.weakCompareAndSet(this,1,2));
155 >        while (!a.weakCompareAndSet(this,2,-4));
156 >        assertEquals(-4,a.get(this));
157 >        while (!a.weakCompareAndSet(this,-4,7));
158 >        assertEquals(7,a.get(this));
159      }
160  
161      /**
162 <     *  getAndSet returns previous value and sets to given value
162 >     * getAndSet returns previous value and sets to given value
163       */
164      public void testGetAndSet() {
165          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
# Line 174 | Line 169 | public class AtomicIntegerFieldUpdaterTe
169              return;
170          }
171          x = 1;
172 <        assertEquals(1,a.getAndSet(this, 0));
173 <        assertEquals(0,a.getAndSet(this,-10));
174 <        assertEquals(-10,a.getAndSet(this,1));
172 >        assertEquals(1,a.getAndSet(this, 0));
173 >        assertEquals(0,a.getAndSet(this,-10));
174 >        assertEquals(-10,a.getAndSet(this,1));
175      }
176  
177      /**
# Line 190 | Line 185 | public class AtomicIntegerFieldUpdaterTe
185              return;
186          }
187          x = 1;
188 <        assertEquals(1,a.getAndAdd(this,2));
189 <        assertEquals(3,a.get(this));
190 <        assertEquals(3,a.getAndAdd(this,-4));
191 <        assertEquals(-1,a.get(this));
188 >        assertEquals(1,a.getAndAdd(this,2));
189 >        assertEquals(3,a.get(this));
190 >        assertEquals(3,a.getAndAdd(this,-4));
191 >        assertEquals(-1,a.get(this));
192      }
193  
194      /**
# Line 207 | Line 202 | public class AtomicIntegerFieldUpdaterTe
202              return;
203          }
204          x = 1;
205 <        assertEquals(1,a.getAndDecrement(this));
206 <        assertEquals(0,a.getAndDecrement(this));
207 <        assertEquals(-1,a.getAndDecrement(this));
205 >        assertEquals(1,a.getAndDecrement(this));
206 >        assertEquals(0,a.getAndDecrement(this));
207 >        assertEquals(-1,a.getAndDecrement(this));
208      }
209  
210      /**
# Line 223 | Line 218 | public class AtomicIntegerFieldUpdaterTe
218              return;
219          }
220          x = 1;
221 <        assertEquals(1,a.getAndIncrement(this));
222 <        assertEquals(2,a.get(this));
223 <        a.set(this,-2);
224 <        assertEquals(-2,a.getAndIncrement(this));
225 <        assertEquals(-1,a.getAndIncrement(this));
226 <        assertEquals(0,a.getAndIncrement(this));
227 <        assertEquals(1,a.get(this));
221 >        assertEquals(1,a.getAndIncrement(this));
222 >        assertEquals(2,a.get(this));
223 >        a.set(this,-2);
224 >        assertEquals(-2,a.getAndIncrement(this));
225 >        assertEquals(-1,a.getAndIncrement(this));
226 >        assertEquals(0,a.getAndIncrement(this));
227 >        assertEquals(1,a.get(this));
228      }
229  
230      /**
# Line 243 | Line 238 | public class AtomicIntegerFieldUpdaterTe
238              return;
239          }
240          x = 1;
241 <        assertEquals(3,a.addAndGet(this,2));
242 <        assertEquals(3,a.get(this));
243 <        assertEquals(-1,a.addAndGet(this,-4));
244 <        assertEquals(-1,a.get(this));
241 >        assertEquals(3,a.addAndGet(this,2));
242 >        assertEquals(3,a.get(this));
243 >        assertEquals(-1,a.addAndGet(this,-4));
244 >        assertEquals(-1,a.get(this));
245      }
246  
247      /**
# Line 260 | Line 255 | public class AtomicIntegerFieldUpdaterTe
255              return;
256          }
257          x = 1;
258 <        assertEquals(0,a.decrementAndGet(this));
259 <        assertEquals(-1,a.decrementAndGet(this));
260 <        assertEquals(-2,a.decrementAndGet(this));
261 <        assertEquals(-2,a.get(this));
258 >        assertEquals(0,a.decrementAndGet(this));
259 >        assertEquals(-1,a.decrementAndGet(this));
260 >        assertEquals(-2,a.decrementAndGet(this));
261 >        assertEquals(-2,a.get(this));
262      }
263  
264      /**
# Line 277 | Line 272 | public class AtomicIntegerFieldUpdaterTe
272              return;
273          }
274          x = 1;
275 <        assertEquals(2,a.incrementAndGet(this));
276 <        assertEquals(2,a.get(this));
277 <        a.set(this,-2);
278 <        assertEquals(-1,a.incrementAndGet(this));
279 <        assertEquals(0,a.incrementAndGet(this));
280 <        assertEquals(1,a.incrementAndGet(this));
281 <        assertEquals(1,a.get(this));
275 >        assertEquals(2,a.incrementAndGet(this));
276 >        assertEquals(2,a.get(this));
277 >        a.set(this,-2);
278 >        assertEquals(-1,a.incrementAndGet(this));
279 >        assertEquals(0,a.incrementAndGet(this));
280 >        assertEquals(1,a.incrementAndGet(this));
281 >        assertEquals(1,a.get(this));
282      }
283  
284   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines