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

Comparing jsr166/src/test/tck/AtomicReferenceTest.java (file contents):
Revision 1.7 by dl, Fri Jan 9 20:07:36 2004 UTC vs.
Revision 1.11 by jsr166, Mon Nov 16 05:30:07 2009 UTC

# Line 2 | Line 2
2   * Written by Doug Lea with assistance from members of JCP JSR-166
3   * Expert Group and released to the public domain, as explained at
4   * http://creativecommons.org/licenses/publicdomain
5 < * Other contributors include Andrew Wright, Jeffrey Hayes,
6 < * Pat Fisher, Mike Judd.
5 > * Other contributors include Andrew Wright, Jeffrey Hayes,
6 > * Pat Fisher, Mike Judd.
7   */
8  
9   import junit.framework.*;
# Line 21 | Line 21 | public class AtomicReferenceTest extends
21      /**
22       * constructor initializes to given value
23       */
24 <    public void testConstructor(){
24 >    public void testConstructor() {
25          AtomicReference ai = new AtomicReference(one);
26          assertEquals(one,ai.get());
27      }
# Line 29 | Line 29 | public class AtomicReferenceTest extends
29      /**
30       * default constructed initializes to null
31       */
32 <    public void testConstructor2(){
32 >    public void testConstructor2() {
33          AtomicReference ai = new AtomicReference();
34          assertNull(ai.get());
35      }
# Line 37 | Line 37 | public class AtomicReferenceTest extends
37      /**
38       * get returns the last value set
39       */
40 <    public void testGetSet(){
40 >    public void testGetSet() {
41          AtomicReference ai = new AtomicReference(one);
42          assertEquals(one,ai.get());
43          ai.set(two);
44          assertEquals(two,ai.get());
45          ai.set(m3);
46          assertEquals(m3,ai.get());
47        
47      }
48 +
49 +    /**
50 +     * get returns the last value lazySet in same thread
51 +     */
52 +    public void testGetLazySet() {
53 +        AtomicReference ai = new AtomicReference(one);
54 +        assertEquals(one,ai.get());
55 +        ai.lazySet(two);
56 +        assertEquals(two,ai.get());
57 +        ai.lazySet(m3);
58 +        assertEquals(m3,ai.get());
59 +    }
60 +
61      /**
62       * compareAndSet succeeds in changing value if equal to expected else fails
63       */
64 <    public void testCompareAndSet(){
64 >    public void testCompareAndSet() {
65          AtomicReference ai = new AtomicReference(one);
66          assertTrue(ai.compareAndSet(one,two));
67          assertTrue(ai.compareAndSet(two,m4));
# Line 68 | Line 80 | public class AtomicReferenceTest extends
80          final AtomicReference ai = new AtomicReference(one);
81          Thread t = new Thread(new Runnable() {
82                  public void run() {
83 <                    while(!ai.compareAndSet(two, three)) Thread.yield();
83 >                    while (!ai.compareAndSet(two, three)) Thread.yield();
84                  }});
85          try {
86              t.start();
# Line 77 | Line 89 | public class AtomicReferenceTest extends
89              assertFalse(t.isAlive());
90              assertEquals(ai.get(), three);
91          }
92 <        catch(Exception e) {
92 >        catch (Exception e) {
93              unexpectedException();
94          }
95      }
96  
97      /**
98       * repeated weakCompareAndSet succeeds in changing value when equal
99 <     * to expected
99 >     * to expected
100       */
101 <    public void testWeakCompareAndSet(){
101 >    public void testWeakCompareAndSet() {
102          AtomicReference ai = new AtomicReference(one);
103 <        while(!ai.weakCompareAndSet(one,two));
104 <        while(!ai.weakCompareAndSet(two,m4));
103 >        while (!ai.weakCompareAndSet(one,two));
104 >        while (!ai.weakCompareAndSet(two,m4));
105          assertEquals(m4,ai.get());
106 <        while(!ai.weakCompareAndSet(m4,seven));
106 >        while (!ai.weakCompareAndSet(m4,seven));
107          assertEquals(seven,ai.get());
108      }
109  
110      /**
111       * getAndSet returns previous value and sets to given value
112       */
113 <    public void testGetAndSet(){
113 >    public void testGetAndSet() {
114          AtomicReference ai = new AtomicReference(one);
115          assertEquals(one,ai.getAndSet(zero));
116          assertEquals(zero,ai.getAndSet(m10));
# Line 122 | Line 134 | public class AtomicReferenceTest extends
134              ObjectInputStream in = new ObjectInputStream(new BufferedInputStream(bin));
135              AtomicReference r = (AtomicReference) in.readObject();
136              assertEquals(l.get(), r.get());
137 <        } catch(Exception e){
137 >        } catch (Exception e) {
138              unexpectedException();
139          }
140      }
141  
142      /**
143       * toString returns current value.
144 <     */
144 >     */
145      public void testToString() {
146 <        AtomicReference<Integer> ai = new AtomicReference<Integer>(one);
146 >        AtomicReference<Integer> ai = new AtomicReference<Integer>(one);
147          assertEquals(ai.toString(), one.toString());
148          ai.set(two);
149          assertEquals(ai.toString(), two.toString());
150      }
151  
152   }
141

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines