[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.7, Mon Dec 29 19:05:40 2003 UTC revision 1.8, Tue Jan 20 20:20:56 2004 UTC
# Line 64  Line 64 
64       *  get returns the last value set or assigned       *  get returns the last value set or assigned
65       */       */
66      public void testGetSet() {      public void testGetSet() {
67          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
68            try {
69                a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");
70            } catch (RuntimeException ok) {
71                return;
72            }
73          x = 1;          x = 1;
74          assertEquals(1,a.get(this));          assertEquals(1,a.get(this));
75          a.set(this,2);          a.set(this,2);
# Line 77  Line 82 
82       * compareAndSet succeeds in changing value if equal to expected else fails       * compareAndSet succeeds in changing value if equal to expected else fails
83       */       */
84      public void testCompareAndSet() {      public void testCompareAndSet() {
85          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
86            try {
87                a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");
88            } catch (RuntimeException ok) {
89                return;
90            }
91          x = 1;          x = 1;
92          assertTrue(a.compareAndSet(this,1,2));          assertTrue(a.compareAndSet(this,1,2));
93          assertTrue(a.compareAndSet(this,2,-4));          assertTrue(a.compareAndSet(this,2,-4));
# Line 95  Line 105 
105       */       */
106      public void testCompareAndSetInMultipleThreads() {      public void testCompareAndSetInMultipleThreads() {
107          x = 1;          x = 1;
108          final AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest>a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");          final AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest>a;
109            try {
110                a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");
111            } catch (RuntimeException ok) {
112                return;
113            }
114    
115          Thread t = new Thread(new Runnable() {          Thread t = new Thread(new Runnable() {
116                  public void run() {                  public void run() {
# Line 118  Line 133 
133       * to expected       * to expected
134       */       */
135      public void testWeakCompareAndSet() {      public void testWeakCompareAndSet() {
136          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
137            try {
138                a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");
139            } catch (RuntimeException ok) {
140                return;
141            }
142          x = 1;          x = 1;
143          while(!a.weakCompareAndSet(this,1,2));          while(!a.weakCompareAndSet(this,1,2));
144          while(!a.weakCompareAndSet(this,2,-4));          while(!a.weakCompareAndSet(this,2,-4));
# Line 131  Line 151 
151       *  getAndSet returns previous value and sets to given value       *  getAndSet returns previous value and sets to given value
152       */       */
153      public void testGetAndSet() {      public void testGetAndSet() {
154          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
155            try {
156                a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");
157            } catch (RuntimeException ok) {
158                return;
159            }
160          x = 1;          x = 1;
161          assertEquals(1,a.getAndSet(this, 0));          assertEquals(1,a.getAndSet(this, 0));
162          assertEquals(0,a.getAndSet(this,-10));          assertEquals(0,a.getAndSet(this,-10));
# Line 142  Line 167 
167       * getAndAdd returns previous value and adds given value       * getAndAdd returns previous value and adds given value
168       */       */
169      public void testGetAndAdd() {      public void testGetAndAdd() {
170          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
171            try {
172                a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");
173            } catch (RuntimeException ok) {
174                return;
175            }
176          x = 1;          x = 1;
177          assertEquals(1,a.getAndAdd(this,2));          assertEquals(1,a.getAndAdd(this,2));
178          assertEquals(3,a.get(this));          assertEquals(3,a.get(this));
# Line 154  Line 184 
184       * getAndDecrement returns previous value and decrements       * getAndDecrement returns previous value and decrements
185       */       */
186      public void testGetAndDecrement() {      public void testGetAndDecrement() {
187          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
188            try {
189                a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");
190            } catch (RuntimeException ok) {
191                return;
192            }
193          x = 1;          x = 1;
194          assertEquals(1,a.getAndDecrement(this));          assertEquals(1,a.getAndDecrement(this));
195          assertEquals(0,a.getAndDecrement(this));          assertEquals(0,a.getAndDecrement(this));
# Line 165  Line 200 
200       * getAndIncrement returns previous value and increments       * getAndIncrement returns previous value and increments
201       */       */
202      public void testGetAndIncrement() {      public void testGetAndIncrement() {
203          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
204            try {
205                a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");
206            } catch (RuntimeException ok) {
207                return;
208            }
209          x = 1;          x = 1;
210          assertEquals(1,a.getAndIncrement(this));          assertEquals(1,a.getAndIncrement(this));
211          assertEquals(2,a.get(this));          assertEquals(2,a.get(this));
# Line 180  Line 220 
220       * addAndGet adds given value to current, and returns current value       * addAndGet adds given value to current, and returns current value
221       */       */
222      public void testAddAndGet() {      public void testAddAndGet() {
223          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
224            try {
225                a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");
226            } catch (RuntimeException ok) {
227                return;
228            }
229          x = 1;          x = 1;
230          assertEquals(3,a.addAndGet(this,2));          assertEquals(3,a.addAndGet(this,2));
231          assertEquals(3,a.get(this));          assertEquals(3,a.get(this));
# Line 192  Line 237 
237       * decrementAndGet decrements and returns current value       * decrementAndGet decrements and returns current value
238       */       */
239      public void testDecrementAndGet() {      public void testDecrementAndGet() {
240          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
241            try {
242                a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");
243            } catch (RuntimeException ok) {
244                return;
245            }
246          x = 1;          x = 1;
247          assertEquals(0,a.decrementAndGet(this));          assertEquals(0,a.decrementAndGet(this));
248          assertEquals(-1,a.decrementAndGet(this));          assertEquals(-1,a.decrementAndGet(this));
# Line 204  Line 254 
254       * incrementAndGet increments and returns current value       * incrementAndGet increments and returns current value
255       */       */
256      public void testIncrementAndGet() {      public void testIncrementAndGet() {
257          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");          AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;
258            try {
259                a = AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "x");
260            } catch (RuntimeException ok) {
261                return;
262            }
263          x = 1;          x = 1;
264          assertEquals(2,a.incrementAndGet(this));          assertEquals(2,a.incrementAndGet(this));
265          assertEquals(2,a.get(this));          assertEquals(2,a.get(this));

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.8

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8