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.31 by jsr166, Mon Nov 9 18:42:41 2015 UTC vs.
Revision 1.32 by jsr166, Wed Sep 20 00:41:13 2017 UTC

# Line 24 | Line 24 | public class AtomicIntegerFieldUpdaterTe
24          return new TestSuite(AtomicIntegerFieldUpdaterTest.class);
25      }
26  
27    // for testing subclass access
28    static class AtomicIntegerFieldUpdaterTestSubclass extends AtomicIntegerFieldUpdaterTest {
29        public void checkPrivateAccess() {
30            try {
31                AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a =
32                    AtomicIntegerFieldUpdater.newUpdater
33                    (AtomicIntegerFieldUpdaterTest.class, "privateField");
34                shouldThrow();
35            } catch (RuntimeException success) {
36                assertNotNull(success.getCause());
37            }
38        }
39
40        public void checkCompareAndSetProtectedSub() {
41            AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a =
42                AtomicIntegerFieldUpdater.newUpdater
43                (AtomicIntegerFieldUpdaterTest.class, "protectedField");
44            this.protectedField = 1;
45            assertTrue(a.compareAndSet(this, 1, 2));
46            assertTrue(a.compareAndSet(this, 2, -4));
47            assertEquals(-4, a.get(this));
48            assertFalse(a.compareAndSet(this, -5, 7));
49            assertEquals(-4, a.get(this));
50            assertTrue(a.compareAndSet(this, -4, 7));
51            assertEquals(7, a.get(this));
52        }
53    }
54
55    static class UnrelatedClass {
56        public void checkPackageAccess(AtomicIntegerFieldUpdaterTest obj) {
57            obj.x = 72;
58            AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a =
59                AtomicIntegerFieldUpdater.newUpdater
60                (AtomicIntegerFieldUpdaterTest.class, "x");
61            assertEquals(72, a.get(obj));
62            assertTrue(a.compareAndSet(obj, 72, 73));
63            assertEquals(73, a.get(obj));
64        }
65
66        public void checkPrivateAccess(AtomicIntegerFieldUpdaterTest obj) {
67            try {
68                AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a =
69                    AtomicIntegerFieldUpdater.newUpdater
70                    (AtomicIntegerFieldUpdaterTest.class, "privateField");
71                throw new AssertionError("should throw");
72            } catch (RuntimeException success) {
73                assertNotNull(success.getCause());
74            }
75        }
76    }
77
27      AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> updaterFor(String fieldName) {
28          return AtomicIntegerFieldUpdater.newUpdater
29              (AtomicIntegerFieldUpdaterTest.class, fieldName);
# Line 116 | Line 65 | public class AtomicIntegerFieldUpdaterTe
65       * construction using private field from subclass throws RuntimeException
66       */
67      public void testPrivateFieldInSubclass() {
68 <        AtomicIntegerFieldUpdaterTestSubclass s =
69 <            new AtomicIntegerFieldUpdaterTestSubclass();
121 <        s.checkPrivateAccess();
68 >        new NonNestmates.AtomicIntegerFieldUpdaterTestSubclass()
69 >            .checkPrivateAccess();
70      }
71  
72      /**
# Line 126 | Line 74 | public class AtomicIntegerFieldUpdaterTe
74       * private access is not
75       */
76      public void testUnrelatedClassAccess() {
77 <        new UnrelatedClass().checkPackageAccess(this);
78 <        new UnrelatedClass().checkPrivateAccess(this);
77 >        new NonNestmates().checkPackageAccess(this);
78 >        new NonNestmates().checkPrivateAccess(this);
79      }
80  
81      /**
# Line 196 | Line 144 | public class AtomicIntegerFieldUpdaterTe
144       * equal to expected else fails
145       */
146      public void testCompareAndSetProtectedInSubclass() {
147 <        AtomicIntegerFieldUpdaterTestSubclass s =
148 <            new AtomicIntegerFieldUpdaterTestSubclass();
147 >        NonNestmates.AtomicIntegerFieldUpdaterTestSubclass s =
148 >            new NonNestmates.AtomicIntegerFieldUpdaterTestSubclass();
149          s.checkCompareAndSetProtectedSub();
150      }
151  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines