[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.31, Mon Nov 9 18:42:41 2015 UTC revision 1.32, Wed Sep 20 00:41:13 2017 UTC
# Line 24  Line 24 
24          return new TestSuite(AtomicIntegerFieldUpdaterTest.class);          return new TestSuite(AtomicIntegerFieldUpdaterTest.class);
25      }      }
26    
     // for testing subclass access  
     static class AtomicIntegerFieldUpdaterTestSubclass extends AtomicIntegerFieldUpdaterTest {  
         public void checkPrivateAccess() {  
             try {  
                 AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a =  
                     AtomicIntegerFieldUpdater.newUpdater  
                     (AtomicIntegerFieldUpdaterTest.class, "privateField");  
                 shouldThrow();  
             } catch (RuntimeException success) {  
                 assertNotNull(success.getCause());  
             }  
         }  
   
         public void checkCompareAndSetProtectedSub() {  
             AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a =  
                 AtomicIntegerFieldUpdater.newUpdater  
                 (AtomicIntegerFieldUpdaterTest.class, "protectedField");  
             this.protectedField = 1;  
             assertTrue(a.compareAndSet(this, 1, 2));  
             assertTrue(a.compareAndSet(this, 2, -4));  
             assertEquals(-4, a.get(this));  
             assertFalse(a.compareAndSet(this, -5, 7));  
             assertEquals(-4, a.get(this));  
             assertTrue(a.compareAndSet(this, -4, 7));  
             assertEquals(7, a.get(this));  
         }  
     }  
   
     static class UnrelatedClass {  
         public void checkPackageAccess(AtomicIntegerFieldUpdaterTest obj) {  
             obj.x = 72;  
             AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a =  
                 AtomicIntegerFieldUpdater.newUpdater  
                 (AtomicIntegerFieldUpdaterTest.class, "x");  
             assertEquals(72, a.get(obj));  
             assertTrue(a.compareAndSet(obj, 72, 73));  
             assertEquals(73, a.get(obj));  
         }  
   
         public void checkPrivateAccess(AtomicIntegerFieldUpdaterTest obj) {  
             try {  
                 AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a =  
                     AtomicIntegerFieldUpdater.newUpdater  
                     (AtomicIntegerFieldUpdaterTest.class, "privateField");  
                 throw new AssertionError("should throw");  
             } catch (RuntimeException success) {  
                 assertNotNull(success.getCause());  
             }  
         }  
     }  
   
27      AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> updaterFor(String fieldName) {      AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> updaterFor(String fieldName) {
28          return AtomicIntegerFieldUpdater.newUpdater          return AtomicIntegerFieldUpdater.newUpdater
29              (AtomicIntegerFieldUpdaterTest.class, fieldName);              (AtomicIntegerFieldUpdaterTest.class, fieldName);
# Line 116  Line 65 
65       * construction using private field from subclass throws RuntimeException       * construction using private field from subclass throws RuntimeException
66       */       */
67      public void testPrivateFieldInSubclass() {      public void testPrivateFieldInSubclass() {
68          AtomicIntegerFieldUpdaterTestSubclass s =          new NonNestmates.AtomicIntegerFieldUpdaterTestSubclass()
69              new AtomicIntegerFieldUpdaterTestSubclass();              .checkPrivateAccess();
         s.checkPrivateAccess();  
70      }      }
71    
72      /**      /**
# Line 126  Line 74 
74       * private access is not       * private access is not
75       */       */
76      public void testUnrelatedClassAccess() {      public void testUnrelatedClassAccess() {
77          new UnrelatedClass().checkPackageAccess(this);          new NonNestmates().checkPackageAccess(this);
78          new UnrelatedClass().checkPrivateAccess(this);          new NonNestmates().checkPrivateAccess(this);
79      }      }
80    
81      /**      /**
# Line 196  Line 144 
144       * equal to expected else fails       * equal to expected else fails
145       */       */
146      public void testCompareAndSetProtectedInSubclass() {      public void testCompareAndSetProtectedInSubclass() {
147          AtomicIntegerFieldUpdaterTestSubclass s =          NonNestmates.AtomicIntegerFieldUpdaterTestSubclass s =
148              new AtomicIntegerFieldUpdaterTestSubclass();              new NonNestmates.AtomicIntegerFieldUpdaterTestSubclass();
149          s.checkCompareAndSetProtectedSub();          s.checkCompareAndSetProtectedSub();
150      }      }
151    

Legend:
Removed from v.1.31  
changed lines
  Added in v.1.32

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8