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

# Content
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 }