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

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

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

revision 1.23, Fri Jun 10 20:17:11 2011 UTC revision 1.24, Mon Apr 1 20:58:58 2013 UTC
# Line 20  Line 20 
20          return new TestSuite(AtomicIntegerFieldUpdaterTest.class);          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       * Construction with non-existent field throws RuntimeException
30       */       */
31      public void testConstructor() {      public void testConstructor() {
32          try {          try {
33              AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest>              updaterFor("y");
                 a = AtomicIntegerFieldUpdater.newUpdater  
                 (AtomicIntegerFieldUpdaterTest.class, "y");  
34              shouldThrow();              shouldThrow();
35          } catch (RuntimeException success) {}          } catch (RuntimeException success) {}
36      }      }
# Line 37  Line 40 
40       */       */
41      public void testConstructor2() {      public void testConstructor2() {
42          try {          try {
43              AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest>              updaterFor("z");
                 a = AtomicIntegerFieldUpdater.newUpdater  
                 (AtomicIntegerFieldUpdaterTest.class, "z");  
44              shouldThrow();              shouldThrow();
45          } catch (RuntimeException success) {}          } catch (RuntimeException success) {}
46      }      }
# Line 49  Line 50 
50       */       */
51      public void testConstructor3() {      public void testConstructor3() {
52          try {          try {
53              AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest>              updaterFor("w");
                 a = AtomicIntegerFieldUpdater.newUpdater  
                 (AtomicIntegerFieldUpdaterTest.class, "w");  
54              shouldThrow();              shouldThrow();
55          } catch (RuntimeException success) {}          } catch (RuntimeException success) {}
56      }      }
# Line 61  Line 60 
60       */       */
61      public void testGetSet() {      public void testGetSet() {
62          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
63          try {          a = updaterFor("x");
             a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");  
         } catch (RuntimeException ok) {  
             return;  
         }  
64          x = 1;          x = 1;
65          assertEquals(1, a.get(this));          assertEquals(1, a.get(this));
66          a.set(this, 2);          a.set(this, 2);
# Line 79  Line 74 
74       */       */
75      public void testGetLazySet() {      public void testGetLazySet() {
76          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
77          try {          a = updaterFor("x");
             a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");  
         } catch (RuntimeException ok) {  
             return;  
         }  
78          x = 1;          x = 1;
79          assertEquals(1, a.get(this));          assertEquals(1, a.get(this));
80          a.lazySet(this, 2);          a.lazySet(this, 2);
# Line 97  Line 88 
88       */       */
89      public void testCompareAndSet() {      public void testCompareAndSet() {
90          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
91          try {          a = updaterFor("x");
             a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");  
         } catch (RuntimeException ok) {  
             return;  
         }  
92          x = 1;          x = 1;
93          assertTrue(a.compareAndSet(this, 1, 2));          assertTrue(a.compareAndSet(this, 1, 2));
94          assertTrue(a.compareAndSet(this, 2, -4));          assertTrue(a.compareAndSet(this, 2, -4));
# Line 119  Line 106 
106      public void testCompareAndSetInMultipleThreads() throws Exception {      public void testCompareAndSetInMultipleThreads() throws Exception {
107          x = 1;          x = 1;
108          final AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest>a;          final AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest>a;
109          try {          a = updaterFor("x");
             a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");  
         } catch (RuntimeException ok) {  
             return;  
         }  
110    
111          Thread t = new Thread(new CheckedRunnable() {          Thread t = new Thread(new CheckedRunnable() {
112              public void realRun() {              public void realRun() {
# Line 144  Line 127 
127       */       */
128      public void testWeakCompareAndSet() {      public void testWeakCompareAndSet() {
129          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
130          try {          a = updaterFor("x");
             a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");  
         } catch (RuntimeException ok) {  
             return;  
         }  
131          x = 1;          x = 1;
132          while (!a.weakCompareAndSet(this, 1, 2));          while (!a.weakCompareAndSet(this, 1, 2));
133          while (!a.weakCompareAndSet(this, 2, -4));          while (!a.weakCompareAndSet(this, 2, -4));
# Line 162  Line 141 
141       */       */
142      public void testGetAndSet() {      public void testGetAndSet() {
143          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
144          try {          a = updaterFor("x");
             a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");  
         } catch (RuntimeException ok) {  
             return;  
         }  
145          x = 1;          x = 1;
146          assertEquals(1, a.getAndSet(this, 0));          assertEquals(1, a.getAndSet(this, 0));
147          assertEquals(0, a.getAndSet(this, -10));          assertEquals(0, a.getAndSet(this, -10));
# Line 178  Line 153 
153       */       */
154      public void testGetAndAdd() {      public void testGetAndAdd() {
155          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
156          try {          a = updaterFor("x");
             a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");  
         } catch (RuntimeException ok) {  
             return;  
         }  
157          x = 1;          x = 1;
158          assertEquals(1, a.getAndAdd(this, 2));          assertEquals(1, a.getAndAdd(this, 2));
159          assertEquals(3, a.get(this));          assertEquals(3, a.get(this));
# Line 195  Line 166 
166       */       */
167      public void testGetAndDecrement() {      public void testGetAndDecrement() {
168          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
169          try {          a = updaterFor("x");
             a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");  
         } catch (RuntimeException ok) {  
             return;  
         }  
170          x = 1;          x = 1;
171          assertEquals(1, a.getAndDecrement(this));          assertEquals(1, a.getAndDecrement(this));
172          assertEquals(0, a.getAndDecrement(this));          assertEquals(0, a.getAndDecrement(this));
# Line 211  Line 178 
178       */       */
179      public void testGetAndIncrement() {      public void testGetAndIncrement() {
180          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
181          try {          a = updaterFor("x");
             a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");  
         } catch (RuntimeException ok) {  
             return;  
         }  
182          x = 1;          x = 1;
183          assertEquals(1, a.getAndIncrement(this));          assertEquals(1, a.getAndIncrement(this));
184          assertEquals(2, a.get(this));          assertEquals(2, a.get(this));
# Line 231  Line 194 
194       */       */
195      public void testAddAndGet() {      public void testAddAndGet() {
196          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
197          try {          a = updaterFor("x");
             a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");  
         } catch (RuntimeException ok) {  
             return;  
         }  
198          x = 1;          x = 1;
199          assertEquals(3, a.addAndGet(this, 2));          assertEquals(3, a.addAndGet(this, 2));
200          assertEquals(3, a.get(this));          assertEquals(3, a.get(this));
# Line 248  Line 207 
207       */       */
208      public void testDecrementAndGet() {      public void testDecrementAndGet() {
209          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
210          try {          a = updaterFor("x");
             a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");  
         } catch (RuntimeException ok) {  
             return;  
         }  
211          x = 1;          x = 1;
212          assertEquals(0, a.decrementAndGet(this));          assertEquals(0, a.decrementAndGet(this));
213          assertEquals(-1, a.decrementAndGet(this));          assertEquals(-1, a.decrementAndGet(this));
# Line 265  Line 220 
220       */       */
221      public void testIncrementAndGet() {      public void testIncrementAndGet() {
222          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
223          try {          a = updaterFor("x");
             a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");  
         } catch (RuntimeException ok) {  
             return;  
         }  
224          x = 1;          x = 1;
225          assertEquals(2, a.incrementAndGet(this));          assertEquals(2, a.incrementAndGet(this));
226          assertEquals(2, a.get(this));          assertEquals(2, a.get(this));

Legend:
Removed from v.1.23  
changed lines
  Added in v.1.24

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8