ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/test/tck/AtomicLongArrayTest.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 AtomicLongArrayTest extends TestCase
12 {
13 static final int N = 10;
14
15 public static void main (String[] args) {
16 junit.textui.TestRunner.run (suite());
17 }
18 public static Test suite() {
19 return new TestSuite(AtomicLongArrayTest.class);
20 }
21
22 public void testConstructor(){
23 AtomicLongArray ai = new AtomicLongArray(N);
24 for (int i = 0; i < N; ++i)
25 assertEquals(0,ai.get(i));
26 }
27
28 public void testGetSet(){
29 AtomicLongArray ai = new AtomicLongArray(N);
30 for (int i = 0; i < N; ++i) {
31 ai.set(i, 1);
32 assertEquals(1,ai.get(i));
33 ai.set(i, 2);
34 assertEquals(2,ai.get(i));
35 ai.set(i, -3);
36 assertEquals(-3,ai.get(i));
37 }
38 }
39
40 public void testCompareAndSet(){
41 AtomicLongArray ai = new AtomicLongArray(N);
42 for (int i = 0; i < N; ++i) {
43 ai.set(i, 1);
44 assertTrue(ai.compareAndSet(i, 1,2));
45 assertTrue(ai.compareAndSet(i, 2,-4));
46 assertEquals(-4,ai.get(i));
47 assertFalse(ai.compareAndSet(i, -5,7));
48 assertFalse((7 == ai.get(i)));
49 assertTrue(ai.compareAndSet(i, -4,7));
50 assertEquals(7,ai.get(i));
51 }
52 }
53
54 public void testWeakCompareAndSet(){
55 AtomicLongArray ai = new AtomicLongArray(N);
56 for (int i = 0; i < N; ++i) {
57 ai.set(i, 1);
58 while(!ai.weakCompareAndSet(i, 1,2));
59 while(!ai.weakCompareAndSet(i, 2,-4));
60 assertEquals(-4,ai.get(i));
61 while(!ai.weakCompareAndSet(i, -4,7));
62 assertEquals(7,ai.get(i));
63 }
64 }
65
66 public void testGetAndSet(){
67 AtomicLongArray ai = new AtomicLongArray(N);
68 for (int i = 0; i < N; ++i) {
69 ai.set(i, 1);
70 assertEquals(1,ai.getAndSet(i,0));
71 assertEquals(0,ai.getAndSet(i,-10));
72 assertEquals(-10,ai.getAndSet(i,1));
73 }
74 }
75
76 public void testGetAndAdd(){
77 AtomicLongArray ai = new AtomicLongArray(N);
78 for (int i = 0; i < N; ++i) {
79 ai.set(i, 1);
80 assertEquals(1,ai.getAndAdd(i,2));
81 assertEquals(3,ai.get(i));
82 assertEquals(3,ai.getAndAdd(i,-4));
83 assertEquals(-1,ai.get(i));
84 }
85 }
86
87 public void testGetAndDecrement(){
88 AtomicLongArray ai = new AtomicLongArray(N);
89 for (int i = 0; i < N; ++i) {
90 ai.set(i, 1);
91 assertEquals(1,ai.getAndDecrement(i));
92 assertEquals(0,ai.getAndDecrement(i));
93 assertEquals(-1,ai.getAndDecrement(i));
94 }
95 }
96
97 public void testGetAndIncrement(){
98 AtomicLongArray ai = new AtomicLongArray(N);
99 for (int i = 0; i < N; ++i) {
100 ai.set(i, 1);
101 assertEquals(1,ai.getAndIncrement(i));
102 assertEquals(2,ai.get(i));
103 ai.set(i,-2);
104 assertEquals(-2,ai.getAndIncrement(i));
105 assertEquals(-1,ai.getAndIncrement(i));
106 assertEquals(0,ai.getAndIncrement(i));
107 assertEquals(1,ai.get(i));
108 }
109 }
110
111 public void testAddAndGet() {
112 AtomicLongArray ai = new AtomicLongArray(N);
113 for (int i = 0; i < N; ++i) {
114 ai.set(i, 1);
115 assertEquals(3,ai.addAndGet(i,2));
116 assertEquals(3,ai.get(i));
117 assertEquals(-1,ai.addAndGet(i,-4));
118 assertEquals(-1,ai.get(i));
119 }
120 }
121
122 public void testDecrementAndGet(){
123 AtomicLongArray ai = new AtomicLongArray(N);
124 for (int i = 0; i < N; ++i) {
125 ai.set(i, 1);
126 assertEquals(0,ai.decrementAndGet(i));
127 assertEquals(-1,ai.decrementAndGet(i));
128 assertEquals(-2,ai.decrementAndGet(i));
129 assertEquals(-2,ai.get(i));
130 }
131 }
132
133 public void testIncrementAndGet() {
134 AtomicLongArray ai = new AtomicLongArray(N);
135 for (int i = 0; i < N; ++i) {
136 ai.set(i, 1);
137 assertEquals(2,ai.incrementAndGet(i));
138 assertEquals(2,ai.get(i));
139 ai.set(i, -2);
140 assertEquals(-1,ai.incrementAndGet(i));
141 assertEquals(0,ai.incrementAndGet(i));
142 assertEquals(1,ai.incrementAndGet(i));
143 assertEquals(1,ai.get(i));
144 }
145 }
146
147 }