ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/test/tck/AtomicReferenceArrayTest.java
Revision: 1.1
Committed: Sun Aug 31 19:24:53 2003 UTC (20 years, 8 months ago) by dl
Branch: MAIN
Log Message:
First check-in of tests to be in tck

File Contents

# User Rev Content
1 dl 1.1 /*
2     * Written by members of JCP JSR-166 Expert Group and released to the
3     * public domain. Use, modify, and redistribute this code in any way
4     * without acknowledgement. Other contributors include Andrew Wright,
5     * Jeffrey Hayes, Pat Fischer, Mike Judd.
6     */
7    
8     import junit.framework.*;
9     import java.util.concurrent.atomic.*;
10    
11     public class AtomicReferenceArrayTest extends TestCase
12     {
13     static final int N = 10;
14    
15     static final Integer zero = new Integer(0);
16     static final Integer one = new Integer(1);
17     static final Integer two = new Integer(2);
18     static final Integer m3 = new Integer(-3);
19     static final Integer m4 = new Integer(-4);
20     static final Integer m5 = new Integer(-5);
21     static final Integer seven = new Integer(7);
22     static final Integer m10 = new Integer(-10);
23    
24     public static void main (String[] args) {
25     junit.textui.TestRunner.run (suite());
26     }
27     public static Test suite() {
28     return new TestSuite(AtomicReferenceArrayTest.class);
29     }
30    
31     public void testConstructor(){
32     AtomicReferenceArray<Integer> ai = new AtomicReferenceArray<Integer>(N);
33     for (int i = 0; i < N; ++i) {
34     assertNull(ai.get(i));
35     }
36     }
37    
38     public void testGetSet(){
39     AtomicReferenceArray ai = new AtomicReferenceArray(N);
40     for (int i = 0; i < N; ++i) {
41     ai.set(i, one);
42     assertEquals(one,ai.get(i));
43     ai.set(i, two);
44     assertEquals(two,ai.get(i));
45     ai.set(i, m3);
46     assertEquals(m3,ai.get(i));
47     }
48     }
49    
50     public void testCompareAndSet(){
51     AtomicReferenceArray ai = new AtomicReferenceArray(N);
52     for (int i = 0; i < N; ++i) {
53     ai.set(i, one);
54     assertTrue(ai.compareAndSet(i, one,two));
55     assertTrue(ai.compareAndSet(i, two,m4));
56     assertEquals(m4,ai.get(i));
57     assertFalse(ai.compareAndSet(i, m5,seven));
58     assertFalse((seven.equals(ai.get(i))));
59     assertTrue(ai.compareAndSet(i, m4,seven));
60     assertEquals(seven,ai.get(i));
61     }
62     }
63    
64     public void testWeakCompareAndSet(){
65     AtomicReferenceArray ai = new AtomicReferenceArray(N);
66     for (int i = 0; i < N; ++i) {
67     ai.set(i, one);
68     while(!ai.weakCompareAndSet(i, one,two));
69     while(!ai.weakCompareAndSet(i, two,m4));
70     assertEquals(m4,ai.get(i));
71     while(!ai.weakCompareAndSet(i, m4,seven));
72     assertEquals(seven,ai.get(i));
73     }
74     }
75    
76     public void testGetAndSet(){
77     AtomicReferenceArray ai = new AtomicReferenceArray(N);
78     for (int i = 0; i < N; ++i) {
79     ai.set(i, one);
80     assertEquals(one,ai.getAndSet(i,zero));
81     assertEquals(0,ai.getAndSet(i,m10));
82     assertEquals(m10,ai.getAndSet(i,one));
83     }
84     }
85    
86    
87     }