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.23 by jsr166, Fri Jun 10 20:17:11 2011 UTC vs.
Revision 1.24 by jsr166, Mon Apr 1 20:58:58 2013 UTC

# Line 20 | Line 20 | public class AtomicIntegerFieldUpdaterTe
20          return new TestSuite(AtomicIntegerFieldUpdaterTest.class);
21      }
22  
23 +    AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> updaterFor(String fieldName) {
24 +        return AtomicIntegerFieldUpdater.newUpdater
25 +            (AtomicIntegerFieldUpdaterTest.class, fieldName);
26 +    }
27 +
28      /**
29       * Construction with non-existent field throws RuntimeException
30       */
31      public void testConstructor() {
32          try {
33 <            AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest>
29 <                a = AtomicIntegerFieldUpdater.newUpdater
30 <                (AtomicIntegerFieldUpdaterTest.class, "y");
33 >            updaterFor("y");
34              shouldThrow();
35          } catch (RuntimeException success) {}
36      }
# Line 37 | Line 40 | public class AtomicIntegerFieldUpdaterTe
40       */
41      public void testConstructor2() {
42          try {
43 <            AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest>
41 <                a = AtomicIntegerFieldUpdater.newUpdater
42 <                (AtomicIntegerFieldUpdaterTest.class, "z");
43 >            updaterFor("z");
44              shouldThrow();
45          } catch (RuntimeException success) {}
46      }
# Line 49 | Line 50 | public class AtomicIntegerFieldUpdaterTe
50       */
51      public void testConstructor3() {
52          try {
53 <            AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest>
53 <                a = AtomicIntegerFieldUpdater.newUpdater
54 <                (AtomicIntegerFieldUpdaterTest.class, "w");
53 >            updaterFor("w");
54              shouldThrow();
55          } catch (RuntimeException success) {}
56      }
# Line 61 | Line 60 | public class AtomicIntegerFieldUpdaterTe
60       */
61      public void testGetSet() {
62          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
63 <        try {
65 <            a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");
66 <        } catch (RuntimeException ok) {
67 <            return;
68 <        }
63 >        a = updaterFor("x");
64          x = 1;
65          assertEquals(1, a.get(this));
66          a.set(this, 2);
# Line 79 | Line 74 | public class AtomicIntegerFieldUpdaterTe
74       */
75      public void testGetLazySet() {
76          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
77 <        try {
83 <            a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");
84 <        } catch (RuntimeException ok) {
85 <            return;
86 <        }
77 >        a = updaterFor("x");
78          x = 1;
79          assertEquals(1, a.get(this));
80          a.lazySet(this, 2);
# Line 97 | Line 88 | public class AtomicIntegerFieldUpdaterTe
88       */
89      public void testCompareAndSet() {
90          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
91 <        try {
101 <            a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");
102 <        } catch (RuntimeException ok) {
103 <            return;
104 <        }
91 >        a = updaterFor("x");
92          x = 1;
93          assertTrue(a.compareAndSet(this, 1, 2));
94          assertTrue(a.compareAndSet(this, 2, -4));
# Line 118 | Line 105 | public class AtomicIntegerFieldUpdaterTe
105       */
106      public void testCompareAndSetInMultipleThreads() throws Exception {
107          x = 1;
108 <        final AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest>a;
109 <        try {
123 <            a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");
124 <        } catch (RuntimeException ok) {
125 <            return;
126 <        }
108 >        final AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
109 >        a = updaterFor("x");
110  
111          Thread t = new Thread(new CheckedRunnable() {
112              public void realRun() {
# Line 144 | Line 127 | public class AtomicIntegerFieldUpdaterTe
127       */
128      public void testWeakCompareAndSet() {
129          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
130 <        try {
148 <            a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");
149 <        } catch (RuntimeException ok) {
150 <            return;
151 <        }
130 >        a = updaterFor("x");
131          x = 1;
132          while (!a.weakCompareAndSet(this, 1, 2));
133          while (!a.weakCompareAndSet(this, 2, -4));
# Line 162 | Line 141 | public class AtomicIntegerFieldUpdaterTe
141       */
142      public void testGetAndSet() {
143          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
144 <        try {
166 <            a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");
167 <        } catch (RuntimeException ok) {
168 <            return;
169 <        }
144 >        a = updaterFor("x");
145          x = 1;
146          assertEquals(1, a.getAndSet(this, 0));
147          assertEquals(0, a.getAndSet(this, -10));
# Line 178 | Line 153 | public class AtomicIntegerFieldUpdaterTe
153       */
154      public void testGetAndAdd() {
155          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
156 <        try {
182 <            a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");
183 <        } catch (RuntimeException ok) {
184 <            return;
185 <        }
156 >        a = updaterFor("x");
157          x = 1;
158          assertEquals(1, a.getAndAdd(this, 2));
159          assertEquals(3, a.get(this));
# Line 195 | Line 166 | public class AtomicIntegerFieldUpdaterTe
166       */
167      public void testGetAndDecrement() {
168          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
169 <        try {
199 <            a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");
200 <        } catch (RuntimeException ok) {
201 <            return;
202 <        }
169 >        a = updaterFor("x");
170          x = 1;
171          assertEquals(1, a.getAndDecrement(this));
172          assertEquals(0, a.getAndDecrement(this));
# Line 211 | Line 178 | public class AtomicIntegerFieldUpdaterTe
178       */
179      public void testGetAndIncrement() {
180          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
181 <        try {
215 <            a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");
216 <        } catch (RuntimeException ok) {
217 <            return;
218 <        }
181 >        a = updaterFor("x");
182          x = 1;
183          assertEquals(1, a.getAndIncrement(this));
184          assertEquals(2, a.get(this));
# Line 231 | Line 194 | public class AtomicIntegerFieldUpdaterTe
194       */
195      public void testAddAndGet() {
196          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
197 <        try {
235 <            a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");
236 <        } catch (RuntimeException ok) {
237 <            return;
238 <        }
197 >        a = updaterFor("x");
198          x = 1;
199          assertEquals(3, a.addAndGet(this, 2));
200          assertEquals(3, a.get(this));
# Line 248 | Line 207 | public class AtomicIntegerFieldUpdaterTe
207       */
208      public void testDecrementAndGet() {
209          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
210 <        try {
252 <            a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");
253 <        } catch (RuntimeException ok) {
254 <            return;
255 <        }
210 >        a = updaterFor("x");
211          x = 1;
212          assertEquals(0, a.decrementAndGet(this));
213          assertEquals(-1, a.decrementAndGet(this));
# Line 265 | Line 220 | public class AtomicIntegerFieldUpdaterTe
220       */
221      public void testIncrementAndGet() {
222          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
223 <        try {
269 <            a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");
270 <        } catch (RuntimeException ok) {
271 <            return;
272 <        }
223 >        a = updaterFor("x");
224          x = 1;
225          assertEquals(2, a.incrementAndGet(this));
226          assertEquals(2, a.get(this));

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines