ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/test/tck/AtomicInteger9Test.java
Revision: 1.1
Committed: Fri Jun 17 19:00:48 2016 UTC (7 years, 10 months ago) by jsr166
Branch: MAIN
Log Message:
split jdk9 Atomic tests into separate *9Test.java files

File Contents

# User Rev Content
1 jsr166 1.1 /*
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/publicdomain/zero/1.0/
5     */
6    
7     import java.util.concurrent.atomic.AtomicInteger;
8    
9     import junit.framework.Test;
10     import junit.framework.TestSuite;
11    
12     public class AtomicInteger9Test extends JSR166TestCase {
13     public static void main(String[] args) {
14     main(suite(), args);
15     }
16     public static Test suite() {
17     return new TestSuite(AtomicInteger9Test.class);
18     }
19    
20     /**
21     * getPlain returns the last value set
22     */
23     public void testGetPlainSet() {
24     AtomicInteger ai = new AtomicInteger(1);
25     assertEquals(1, ai.getPlain());
26     ai.set(2);
27     assertEquals(2, ai.getPlain());
28     ai.set(-3);
29     assertEquals(-3, ai.getPlain());
30     }
31    
32     /**
33     * getOpaque returns the last value set
34     */
35     public void testGetOpaqueSet() {
36     AtomicInteger ai = new AtomicInteger(1);
37     assertEquals(1, ai.getOpaque());
38     ai.set(2);
39     assertEquals(2, ai.getOpaque());
40     ai.set(-3);
41     assertEquals(-3, ai.getOpaque());
42     }
43    
44     /**
45     * getAcquire returns the last value set
46     */
47     public void testGetAcquireSet() {
48     AtomicInteger ai = new AtomicInteger(1);
49     assertEquals(1, ai.getAcquire());
50     ai.set(2);
51     assertEquals(2, ai.getAcquire());
52     ai.set(-3);
53     assertEquals(-3, ai.getAcquire());
54     }
55    
56     /**
57     * get returns the last value setPlain
58     */
59     public void testGetSetPlain() {
60     AtomicInteger ai = new AtomicInteger(1);
61     assertEquals(1, ai.get());
62     ai.setPlain(2);
63     assertEquals(2, ai.get());
64     ai.setPlain(-3);
65     assertEquals(-3, ai.get());
66     }
67    
68     /**
69     * get returns the last value setOpaque
70     */
71     public void testGetSetOpaque() {
72     AtomicInteger ai = new AtomicInteger(1);
73     assertEquals(1, ai.get());
74     ai.setOpaque(2);
75     assertEquals(2, ai.get());
76     ai.setOpaque(-3);
77     assertEquals(-3, ai.get());
78     }
79    
80     /**
81     * get returns the last value setRelease
82     */
83     public void testGetSetRelease() {
84     AtomicInteger ai = new AtomicInteger(1);
85     assertEquals(1, ai.get());
86     ai.setRelease(2);
87     assertEquals(2, ai.get());
88     ai.setRelease(-3);
89     assertEquals(-3, ai.get());
90     }
91    
92     /**
93     * compareAndExchange succeeds in changing value if equal to
94     * expected else fails
95     */
96     public void testCompareAndExchange() {
97     AtomicInteger ai = new AtomicInteger(1);
98     assertEquals(1, ai.compareAndExchange(1, 2));
99     assertEquals(2, ai.compareAndExchange(2, -4));
100     assertEquals(-4, ai.get());
101     assertEquals(-4, ai.compareAndExchange(-5, 7));
102     assertEquals(-4, ai.get());
103     assertEquals(-4, ai.compareAndExchange(-4, 7));
104     assertEquals(7, ai.get());
105     }
106    
107     /**
108     * compareAndExchangeAcquire succeeds in changing value if equal to
109     * expected else fails
110     */
111     public void testCompareAndExchangeAcquire() {
112     AtomicInteger ai = new AtomicInteger(1);
113     assertEquals(1, ai.compareAndExchangeAcquire(1, 2));
114     assertEquals(2, ai.compareAndExchangeAcquire(2, -4));
115     assertEquals(-4, ai.get());
116     assertEquals(-4, ai.compareAndExchangeAcquire(-5, 7));
117     assertEquals(-4, ai.get());
118     assertEquals(-4, ai.compareAndExchangeAcquire(-4, 7));
119     assertEquals(7, ai.get());
120     }
121    
122     /**
123     * compareAndExchangeRelease succeeds in changing value if equal to
124     * expected else fails
125     */
126     public void testCompareAndExchangeRelease() {
127     AtomicInteger ai = new AtomicInteger(1);
128     assertEquals(1, ai.compareAndExchangeRelease(1, 2));
129     assertEquals(2, ai.compareAndExchangeRelease(2, -4));
130     assertEquals(-4, ai.get());
131     assertEquals(-4, ai.compareAndExchangeRelease(-5, 7));
132     assertEquals(-4, ai.get());
133     assertEquals(-4, ai.compareAndExchangeRelease(-4, 7));
134     assertEquals(7, ai.get());
135     }
136    
137     /**
138     * repeated weakCompareAndSetVolatile succeeds in changing value when equal
139     * to expected
140     */
141     public void testWeakCompareAndSetVolatile() {
142     AtomicInteger ai = new AtomicInteger(1);
143     do {} while (!ai.weakCompareAndSetVolatile(1, 2));
144     do {} while (!ai.weakCompareAndSetVolatile(2, -4));
145     assertEquals(-4, ai.get());
146     do {} while (!ai.weakCompareAndSetVolatile(-4, 7));
147     assertEquals(7, ai.get());
148     }
149    
150     /**
151     * repeated weakCompareAndSetAcquire succeeds in changing value when equal
152     * to expected
153     */
154     public void testWeakCompareAndSetAcquire() {
155     AtomicInteger ai = new AtomicInteger(1);
156     do {} while (!ai.weakCompareAndSetAcquire(1, 2));
157     do {} while (!ai.weakCompareAndSetAcquire(2, -4));
158     assertEquals(-4, ai.get());
159     do {} while (!ai.weakCompareAndSetAcquire(-4, 7));
160     assertEquals(7, ai.get());
161     }
162    
163     /**
164     * repeated weakCompareAndSetRelease succeeds in changing value when equal
165     * to expected
166     */
167     public void testWeakCompareAndSetRelease() {
168     AtomicInteger ai = new AtomicInteger(1);
169     do {} while (!ai.weakCompareAndSetRelease(1, 2));
170     do {} while (!ai.weakCompareAndSetRelease(2, -4));
171     assertEquals(-4, ai.get());
172     do {} while (!ai.weakCompareAndSetRelease(-4, 7));
173     assertEquals(7, ai.get());
174     }
175    
176     }