ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/test/tck/AtomicReferenceFieldUpdaterTest.java
(Generate patch)

Comparing jsr166/src/test/tck/AtomicReferenceFieldUpdaterTest.java (file contents):
Revision 1.35 by jsr166, Sat Mar 18 20:42:20 2017 UTC vs.
Revision 1.36 by jsr166, Wed Sep 20 00:41:13 2017 UTC

# Line 26 | Line 26 | public class AtomicReferenceFieldUpdater
26          return new TestSuite(AtomicReferenceFieldUpdaterTest.class);
27      }
28  
29    // for testing subclass access
30    static class AtomicReferenceFieldUpdaterTestSubclass extends AtomicReferenceFieldUpdaterTest {
31        public void checkPrivateAccess() {
32            try {
33                AtomicReferenceFieldUpdater<AtomicReferenceFieldUpdaterTest,Integer> a =
34                    AtomicReferenceFieldUpdater.newUpdater
35                    (AtomicReferenceFieldUpdaterTest.class, Integer.class, "privateField");
36                shouldThrow();
37            } catch (RuntimeException success) {
38                assertNotNull(success.getCause());
39            }
40        }
41
42        public void checkCompareAndSetProtectedSub() {
43            AtomicReferenceFieldUpdater<AtomicReferenceFieldUpdaterTest,Integer> a =
44                AtomicReferenceFieldUpdater.newUpdater
45                (AtomicReferenceFieldUpdaterTest.class, Integer.class, "protectedField");
46            this.protectedField = one;
47            assertTrue(a.compareAndSet(this, one, two));
48            assertTrue(a.compareAndSet(this, two, m4));
49            assertSame(m4, a.get(this));
50            assertFalse(a.compareAndSet(this, m5, seven));
51            assertNotSame(seven, a.get(this));
52            assertTrue(a.compareAndSet(this, m4, seven));
53            assertSame(seven, a.get(this));
54        }
55    }
56
57    static class UnrelatedClass {
58        public void checkPackageAccess(AtomicReferenceFieldUpdaterTest obj) {
59            obj.x = one;
60            AtomicReferenceFieldUpdater<AtomicReferenceFieldUpdaterTest,Integer> a =
61                AtomicReferenceFieldUpdater.newUpdater
62                (AtomicReferenceFieldUpdaterTest.class, Integer.class, "x");
63            assertSame(one, a.get(obj));
64            assertTrue(a.compareAndSet(obj, one, two));
65            assertSame(two, a.get(obj));
66        }
67
68        public void checkPrivateAccess(AtomicReferenceFieldUpdaterTest obj) {
69            try {
70                AtomicReferenceFieldUpdater<AtomicReferenceFieldUpdaterTest,Integer> a =
71                    AtomicReferenceFieldUpdater.newUpdater
72                    (AtomicReferenceFieldUpdaterTest.class, Integer.class, "privateField");
73                throw new AssertionError("should throw");
74            } catch (RuntimeException success) {
75                assertNotNull(success.getCause());
76            }
77        }
78    }
79
29      static AtomicReferenceFieldUpdater<AtomicReferenceFieldUpdaterTest, Integer> updaterFor(String fieldName) {
30          return AtomicReferenceFieldUpdater.newUpdater
31              (AtomicReferenceFieldUpdaterTest.class, Integer.class, fieldName);
# Line 128 | Line 77 | public class AtomicReferenceFieldUpdater
77       * construction using private field from subclass throws RuntimeException
78       */
79      public void testPrivateFieldInSubclass() {
80 <        AtomicReferenceFieldUpdaterTestSubclass s =
81 <            new AtomicReferenceFieldUpdaterTestSubclass();
133 <        s.checkPrivateAccess();
80 >        new NonNestmates.AtomicReferenceFieldUpdaterTestSubclass()
81 >            .checkPrivateAccess();
82      }
83  
84      /**
# Line 138 | Line 86 | public class AtomicReferenceFieldUpdater
86       * private access is not
87       */
88      public void testUnrelatedClassAccess() {
89 <        new UnrelatedClass().checkPackageAccess(this);
90 <        new UnrelatedClass().checkPrivateAccess(this);
89 >        new NonNestmates().checkPackageAccess(this);
90 >        new NonNestmates().checkPrivateAccess(this);
91      }
92  
93      /**

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines