6 |
|
* Pat Fisher, Mike Judd. |
7 |
|
*/ |
8 |
|
|
9 |
– |
import junit.framework.*; |
9 |
|
import java.util.concurrent.atomic.AtomicStampedReference; |
10 |
|
|
11 |
+ |
import junit.framework.Test; |
12 |
+ |
import junit.framework.TestSuite; |
13 |
+ |
|
14 |
|
public class AtomicStampedReferenceTest extends JSR166TestCase { |
15 |
|
public static void main(String[] args) { |
16 |
|
junit.textui.TestRunner.run(suite()); |
106 |
|
assertTrue(ai.compareAndSet(one, two, 0, 0)); |
107 |
|
t.join(LONG_DELAY_MS); |
108 |
|
assertFalse(t.isAlive()); |
109 |
< |
assertSame(ai.getReference(), three); |
110 |
< |
assertEquals(ai.getStamp(), 0); |
109 |
> |
assertSame(three, ai.getReference()); |
110 |
> |
assertEquals(0, ai.getStamp()); |
111 |
|
} |
112 |
|
|
113 |
|
/** |
126 |
|
assertTrue(ai.compareAndSet(one, one, 0, 1)); |
127 |
|
t.join(LONG_DELAY_MS); |
128 |
|
assertFalse(t.isAlive()); |
129 |
< |
assertSame(ai.getReference(), one); |
130 |
< |
assertEquals(ai.getStamp(), 2); |
129 |
> |
assertSame(one, ai.getReference()); |
130 |
> |
assertEquals(2, ai.getStamp()); |
131 |
|
} |
132 |
|
|
133 |
|
/** |
141 |
|
assertEquals(0, ai.getStamp()); |
142 |
|
assertEquals(0, mark[0]); |
143 |
|
|
144 |
< |
while (!ai.weakCompareAndSet(one, two, 0, 0)); |
144 |
> |
do {} while (!ai.weakCompareAndSet(one, two, 0, 0)); |
145 |
|
assertSame(two, ai.get(mark)); |
146 |
|
assertEquals(0, mark[0]); |
147 |
|
|
148 |
< |
while (!ai.weakCompareAndSet(two, m3, 0, 1)); |
148 |
> |
do {} while (!ai.weakCompareAndSet(two, m3, 0, 1)); |
149 |
|
assertSame(m3, ai.get(mark)); |
150 |
|
assertEquals(1, mark[0]); |
151 |
|
} |