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

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

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

revision 1.6, Fri Jun 17 19:00:48 2016 UTC revision 1.7, Sat Sep 24 12:54:31 2016 UTC
# Line 18  Line 18 
18  import junit.framework.Test;  import junit.framework.Test;
19  import junit.framework.TestSuite;  import junit.framework.TestSuite;
20    
21    /**
22     * Tests of atomic class methods accepting lambdas introduced in JDK8.
23     */
24  public class Atomic8Test extends JSR166TestCase {  public class Atomic8Test extends JSR166TestCase {
25    
26      public static void main(String[] args) {      public static void main(String[] args) {
# Line 27  Line 30 
30          return new TestSuite(Atomic8Test.class);          return new TestSuite(Atomic8Test.class);
31      }      }
32    
     /*  
      * Tests of atomic class methods accepting lambdas  
      * introduced in JDK8.  
      */  
   
33      static long addLong17(long x) { return x + 17; }      static long addLong17(long x) { return x + 17; }
34      static int addInt17(int x) { return x + 17; }      static int addInt17(int x) { return x + 17; }
35      static Integer addInteger17(Integer x) {      static Integer addInteger17(Integer x) {
36          return new Integer(x.intValue() + 17);          return x.intValue() + 17;
37      }      }
38      static Integer sumInteger(Integer x, Integer y) {      static Integer sumInteger(Integer x, Integer y) {
39          return new Integer(x.intValue() + y.intValue());          return x.intValue() + y.intValue();
40      }      }
41    
42      volatile long aLongField;      volatile long aLongField;
# Line 153  Line 151 
151       */       */
152      public void testReferenceGetAndUpdate() {      public void testReferenceGetAndUpdate() {
153          AtomicReference<Integer> a = new AtomicReference<>(one);          AtomicReference<Integer> a = new AtomicReference<>(one);
154          assertEquals(new Integer(1), a.getAndUpdate(Atomic8Test::addInteger17));          assertEquals((Integer) 1, a.getAndUpdate(Atomic8Test::addInteger17));
155          assertEquals(new Integer(18), a.getAndUpdate(Atomic8Test::addInteger17));          assertEquals((Integer) 18, a.getAndUpdate(Atomic8Test::addInteger17));
156          assertEquals(new Integer(35), a.get());          assertEquals((Integer) 35, a.get());
157      }      }
158    
159      /**      /**
# Line 164  Line 162 
162       */       */
163      public void testReferenceUpdateAndGet() {      public void testReferenceUpdateAndGet() {
164          AtomicReference<Integer> a = new AtomicReference<>(one);          AtomicReference<Integer> a = new AtomicReference<>(one);
165          assertEquals(new Integer(18), a.updateAndGet(Atomic8Test::addInteger17));          assertEquals((Integer) 18, a.updateAndGet(Atomic8Test::addInteger17));
166          assertEquals(new Integer(35), a.updateAndGet(Atomic8Test::addInteger17));          assertEquals((Integer) 35, a.updateAndGet(Atomic8Test::addInteger17));
167          assertEquals(new Integer(35), a.get());          assertEquals((Integer) 35, a.get());
168      }      }
169    
170      /**      /**
# Line 175  Line 173 
173       */       */
174      public void testReferenceGetAndAccumulate() {      public void testReferenceGetAndAccumulate() {
175          AtomicReference<Integer> a = new AtomicReference<>(one);          AtomicReference<Integer> a = new AtomicReference<>(one);
176          assertEquals(new Integer(1), a.getAndAccumulate(2, Atomic8Test::sumInteger));          assertEquals((Integer) 1, a.getAndAccumulate(2, Atomic8Test::sumInteger));
177          assertEquals(new Integer(3), a.getAndAccumulate(3, Atomic8Test::sumInteger));          assertEquals((Integer) 3, a.getAndAccumulate(3, Atomic8Test::sumInteger));
178          assertEquals(new Integer(6), a.get());          assertEquals((Integer) 6, a.get());
179      }      }
180    
181      /**      /**
# Line 186  Line 184 
184       */       */
185      public void testReferenceAccumulateAndGet() {      public void testReferenceAccumulateAndGet() {
186          AtomicReference<Integer> a = new AtomicReference<>(one);          AtomicReference<Integer> a = new AtomicReference<>(one);
187          assertEquals(new Integer(7), a.accumulateAndGet(6, Atomic8Test::sumInteger));          assertEquals((Integer) 7, a.accumulateAndGet(6, Atomic8Test::sumInteger));
188          assertEquals(new Integer(10), a.accumulateAndGet(3, Atomic8Test::sumInteger));          assertEquals((Integer) 10, a.accumulateAndGet(3, Atomic8Test::sumInteger));
189          assertEquals(new Integer(10), a.get());          assertEquals((Integer) 10, a.get());
190      }      }
191    
192      /**      /**
# Line 293  Line 291 
291      public void testReferenceArrayGetAndUpdate() {      public void testReferenceArrayGetAndUpdate() {
292          AtomicReferenceArray<Integer> a = new AtomicReferenceArray<Integer>(1);          AtomicReferenceArray<Integer> a = new AtomicReferenceArray<Integer>(1);
293          a.set(0, one);          a.set(0, one);
294          assertEquals(new Integer(1), a.getAndUpdate(0, Atomic8Test::addInteger17));          assertEquals((Integer) 1, a.getAndUpdate(0, Atomic8Test::addInteger17));
295          assertEquals(new Integer(18), a.getAndUpdate(0, Atomic8Test::addInteger17));          assertEquals((Integer) 18, a.getAndUpdate(0, Atomic8Test::addInteger17));
296          assertEquals(new Integer(35), a.get(0));          assertEquals((Integer) 35, a.get(0));
297      }      }
298    
299      /**      /**
# Line 305  Line 303 
303      public void testReferenceArrayUpdateAndGet() {      public void testReferenceArrayUpdateAndGet() {
304          AtomicReferenceArray<Integer> a = new AtomicReferenceArray<Integer>(1);          AtomicReferenceArray<Integer> a = new AtomicReferenceArray<Integer>(1);
305          a.set(0, one);          a.set(0, one);
306          assertEquals(new Integer(18), a.updateAndGet(0, Atomic8Test::addInteger17));          assertEquals((Integer) 18, a.updateAndGet(0, Atomic8Test::addInteger17));
307          assertEquals(new Integer(35), a.updateAndGet(0, Atomic8Test::addInteger17));          assertEquals((Integer) 35, a.updateAndGet(0, Atomic8Test::addInteger17));
308      }      }
309    
310      /**      /**
# Line 316  Line 314 
314      public void testReferenceArrayGetAndAccumulate() {      public void testReferenceArrayGetAndAccumulate() {
315          AtomicReferenceArray<Integer> a = new AtomicReferenceArray<Integer>(1);          AtomicReferenceArray<Integer> a = new AtomicReferenceArray<Integer>(1);
316          a.set(0, one);          a.set(0, one);
317          assertEquals(new Integer(1), a.getAndAccumulate(0, 2, Atomic8Test::sumInteger));          assertEquals((Integer) 1, a.getAndAccumulate(0, 2, Atomic8Test::sumInteger));
318          assertEquals(new Integer(3), a.getAndAccumulate(0, 3, Atomic8Test::sumInteger));          assertEquals((Integer) 3, a.getAndAccumulate(0, 3, Atomic8Test::sumInteger));
319          assertEquals(new Integer(6), a.get(0));          assertEquals((Integer) 6, a.get(0));
320      }      }
321    
322      /**      /**
# Line 328  Line 326 
326      public void testReferenceArrayAccumulateAndGet() {      public void testReferenceArrayAccumulateAndGet() {
327          AtomicReferenceArray<Integer> a = new AtomicReferenceArray<Integer>(1);          AtomicReferenceArray<Integer> a = new AtomicReferenceArray<Integer>(1);
328          a.set(0, one);          a.set(0, one);
329          assertEquals(new Integer(7), a.accumulateAndGet(0, 6, Atomic8Test::sumInteger));          assertEquals((Integer) 7, a.accumulateAndGet(0, 6, Atomic8Test::sumInteger));
330          assertEquals(new Integer(10), a.accumulateAndGet(0, 3, Atomic8Test::sumInteger));          assertEquals((Integer) 10, a.accumulateAndGet(0, 3, Atomic8Test::sumInteger));
331      }      }
332    
333      /**      /**
# Line 443  Line 441 
441      public void testReferenceFieldUpdaterGetAndUpdate() {      public void testReferenceFieldUpdaterGetAndUpdate() {
442          AtomicReferenceFieldUpdater<Atomic8Test,Integer> a = anIntegerFieldUpdater();          AtomicReferenceFieldUpdater<Atomic8Test,Integer> a = anIntegerFieldUpdater();
443          a.set(this, one);          a.set(this, one);
444          assertEquals(new Integer(1), a.getAndUpdate(this, Atomic8Test::addInteger17));          assertEquals((Integer) 1, a.getAndUpdate(this, Atomic8Test::addInteger17));
445          assertEquals(new Integer(18), a.getAndUpdate(this, Atomic8Test::addInteger17));          assertEquals((Integer) 18, a.getAndUpdate(this, Atomic8Test::addInteger17));
446          assertEquals(new Integer(35), a.get(this));          assertEquals((Integer) 35, a.get(this));
447          assertEquals(new Integer(35), anIntegerField);          assertEquals((Integer) 35, anIntegerField);
448      }      }
449    
450      /**      /**
# Line 456  Line 454 
454      public void testReferenceFieldUpdaterUpdateAndGet() {      public void testReferenceFieldUpdaterUpdateAndGet() {
455          AtomicReferenceFieldUpdater<Atomic8Test,Integer> a = anIntegerFieldUpdater();          AtomicReferenceFieldUpdater<Atomic8Test,Integer> a = anIntegerFieldUpdater();
456          a.set(this, one);          a.set(this, one);
457          assertEquals(new Integer(18), a.updateAndGet(this, Atomic8Test::addInteger17));          assertEquals((Integer) 18, a.updateAndGet(this, Atomic8Test::addInteger17));
458          assertEquals(new Integer(35), a.updateAndGet(this, Atomic8Test::addInteger17));          assertEquals((Integer) 35, a.updateAndGet(this, Atomic8Test::addInteger17));
459          assertEquals(new Integer(35), a.get(this));          assertEquals((Integer) 35, a.get(this));
460          assertEquals(new Integer(35), anIntegerField);          assertEquals((Integer) 35, anIntegerField);
461      }      }
462    
463      /**      /**
# Line 469  Line 467 
467      public void testReferenceFieldUpdaterGetAndAccumulate() {      public void testReferenceFieldUpdaterGetAndAccumulate() {
468          AtomicReferenceFieldUpdater<Atomic8Test,Integer> a = anIntegerFieldUpdater();          AtomicReferenceFieldUpdater<Atomic8Test,Integer> a = anIntegerFieldUpdater();
469          a.set(this, one);          a.set(this, one);
470          assertEquals(new Integer(1), a.getAndAccumulate(this, 2, Atomic8Test::sumInteger));          assertEquals((Integer) 1, a.getAndAccumulate(this, 2, Atomic8Test::sumInteger));
471          assertEquals(new Integer(3), a.getAndAccumulate(this, 3, Atomic8Test::sumInteger));          assertEquals((Integer) 3, a.getAndAccumulate(this, 3, Atomic8Test::sumInteger));
472          assertEquals(new Integer(6), a.get(this));          assertEquals((Integer) 6, a.get(this));
473          assertEquals(new Integer(6), anIntegerField);          assertEquals((Integer) 6, anIntegerField);
474      }      }
475    
476      /**      /**
# Line 482  Line 480 
480      public void testReferenceFieldUpdaterAccumulateAndGet() {      public void testReferenceFieldUpdaterAccumulateAndGet() {
481          AtomicReferenceFieldUpdater<Atomic8Test,Integer> a = anIntegerFieldUpdater();          AtomicReferenceFieldUpdater<Atomic8Test,Integer> a = anIntegerFieldUpdater();
482          a.set(this, one);          a.set(this, one);
483          assertEquals(new Integer(7), a.accumulateAndGet(this, 6, Atomic8Test::sumInteger));          assertEquals((Integer) 7, a.accumulateAndGet(this, 6, Atomic8Test::sumInteger));
484          assertEquals(new Integer(10), a.accumulateAndGet(this, 3, Atomic8Test::sumInteger));          assertEquals((Integer) 10, a.accumulateAndGet(this, 3, Atomic8Test::sumInteger));
485          assertEquals(new Integer(10), a.get(this));          assertEquals((Integer) 10, a.get(this));
486          assertEquals(new Integer(10), anIntegerField);          assertEquals((Integer) 10, anIntegerField);
487      }      }
488    
489      /**      /**

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

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8