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

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