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