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.7 by dl, Mon Dec 29 19:05:40 2003 UTC vs.
Revision 1.10 by dl, Wed May 25 14:27:37 2005 UTC

# Line 66 | Line 66 | public class AtomicReferenceFieldUpdater
66       *  get returns the last value set or assigned
67       */
68      public void testGetSet(){
69 <        AtomicReferenceFieldUpdater<AtomicReferenceFieldUpdaterTest, Integer>a = AtomicReferenceFieldUpdater.newUpdater(AtomicReferenceFieldUpdaterTest.class, Integer.class, "x");
69 >        AtomicReferenceFieldUpdater<AtomicReferenceFieldUpdaterTest, Integer>a;
70 >        try {
71 >            a = AtomicReferenceFieldUpdater.newUpdater(AtomicReferenceFieldUpdaterTest.class, Integer.class, "x");
72 >        } catch (RuntimeException ok) {
73 >            return;
74 >        }
75          x = one;
76          assertEquals(one,a.get(this));
77          a.set(this,two);
78          assertEquals(two,a.get(this));
79 <        a.set(this,-3);
80 <        assertEquals(-3,a.get(this));
81 <        
79 >        a.set(this,m3);
80 >        assertEquals(m3,a.get(this));
81 >    }
82 >
83 >    /**
84 >     *  get returns the last value lazySet by same thread
85 >     */
86 >    public void testGetLazySet(){
87 >        AtomicReferenceFieldUpdater<AtomicReferenceFieldUpdaterTest, Integer>a;
88 >        try {
89 >            a = AtomicReferenceFieldUpdater.newUpdater(AtomicReferenceFieldUpdaterTest.class, Integer.class, "x");
90 >        } catch (RuntimeException ok) {
91 >            return;
92 >        }
93 >        x = one;
94 >        assertEquals(one,a.get(this));
95 >        a.lazySet(this,two);
96 >        assertEquals(two,a.get(this));
97 >        a.lazySet(this,m3);
98 >        assertEquals(m3,a.get(this));
99      }
100 +
101      /**
102       * compareAndSet succeeds in changing value if equal to expected else fails
103       */
104      public void testCompareAndSet(){
105 <        AtomicReferenceFieldUpdater<AtomicReferenceFieldUpdaterTest, Integer>a = AtomicReferenceFieldUpdater.newUpdater(AtomicReferenceFieldUpdaterTest.class, Integer.class, "x");
105 >        AtomicReferenceFieldUpdater<AtomicReferenceFieldUpdaterTest, Integer>a;
106 >        try {
107 >            a = AtomicReferenceFieldUpdater.newUpdater(AtomicReferenceFieldUpdaterTest.class, Integer.class, "x");
108 >        } catch (RuntimeException ok) {
109 >            return;
110 >        }
111          x = one;
112          assertTrue(a.compareAndSet(this,one,two));
113          assertTrue(a.compareAndSet(this,two,m4));
# Line 96 | Line 124 | public class AtomicReferenceFieldUpdater
124       */
125      public void testCompareAndSetInMultipleThreads() {
126          x = one;
127 <        final AtomicReferenceFieldUpdater<AtomicReferenceFieldUpdaterTest, Integer>a = AtomicReferenceFieldUpdater.newUpdater(AtomicReferenceFieldUpdaterTest.class, Integer.class, "x");
127 >        final AtomicReferenceFieldUpdater<AtomicReferenceFieldUpdaterTest, Integer>a;
128 >        try {
129 >            a = AtomicReferenceFieldUpdater.newUpdater(AtomicReferenceFieldUpdaterTest.class, Integer.class, "x");
130 >        } catch (RuntimeException ok) {
131 >            return;
132 >        }
133  
134          Thread t = new Thread(new Runnable() {
135                  public void run() {
# Line 119 | Line 152 | public class AtomicReferenceFieldUpdater
152       * to expected
153       */
154      public void testWeakCompareAndSet(){
155 <        AtomicReferenceFieldUpdater<AtomicReferenceFieldUpdaterTest, Integer>a = AtomicReferenceFieldUpdater.newUpdater(AtomicReferenceFieldUpdaterTest.class, Integer.class, "x");
155 >        AtomicReferenceFieldUpdater<AtomicReferenceFieldUpdaterTest, Integer>a;
156 >        try {
157 >            a = AtomicReferenceFieldUpdater.newUpdater(AtomicReferenceFieldUpdaterTest.class, Integer.class, "x");
158 >        } catch (RuntimeException ok) {
159 >            return;
160 >        }
161          x = one;
162          while(!a.weakCompareAndSet(this,one,two));
163          while(!a.weakCompareAndSet(this,two,m4));
# Line 132 | Line 170 | public class AtomicReferenceFieldUpdater
170       * getAndSet returns previous value and sets to given value
171       */
172      public void testGetAndSet(){
173 <        AtomicReferenceFieldUpdater<AtomicReferenceFieldUpdaterTest, Integer>a = AtomicReferenceFieldUpdater.newUpdater(AtomicReferenceFieldUpdaterTest.class, Integer.class, "x");
173 >        AtomicReferenceFieldUpdater<AtomicReferenceFieldUpdaterTest, Integer>a;
174 >        try {
175 >            a = AtomicReferenceFieldUpdater.newUpdater(AtomicReferenceFieldUpdaterTest.class, Integer.class, "x");
176 >        } catch (RuntimeException ok) {
177 >            return;
178 >        }
179          x = one;
180          assertEquals(one,a.getAndSet(this, zero));
181          assertEquals(zero,a.getAndSet(this,m10));

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines