--- jsr166/src/test/tck/AtomicBooleanTest.java 2011/05/31 16:16:23 1.19 +++ jsr166/src/test/tck/AtomicBooleanTest.java 2021/01/26 13:33:05 1.30 @@ -6,12 +6,14 @@ * Pat Fisher, Mike Judd. */ -import junit.framework.*; import java.util.concurrent.atomic.AtomicBoolean; +import junit.framework.Test; +import junit.framework.TestSuite; + public class AtomicBooleanTest extends JSR166TestCase { public static void main(String[] args) { - junit.textui.TestRunner.run(suite()); + main(suite(), args); } public static Test suite() { return new TestSuite(AtomicBooleanTest.class); @@ -62,13 +64,13 @@ public class AtomicBooleanTest extends J */ public void testCompareAndSet() { AtomicBoolean ai = new AtomicBoolean(true); - assertTrue(ai.compareAndSet(true,false)); + assertTrue(ai.compareAndSet(true, false)); assertFalse(ai.get()); - assertTrue(ai.compareAndSet(false,false)); + assertTrue(ai.compareAndSet(false, false)); assertFalse(ai.get()); - assertFalse(ai.compareAndSet(true,false)); + assertFalse(ai.compareAndSet(true, false)); assertFalse(ai.get()); - assertTrue(ai.compareAndSet(false,true)); + assertTrue(ai.compareAndSet(false, true)); assertTrue(ai.get()); } @@ -93,13 +95,14 @@ public class AtomicBooleanTest extends J * repeated weakCompareAndSet succeeds in changing value when equal * to expected */ + @SuppressWarnings("deprecation") public void testWeakCompareAndSet() { AtomicBoolean ai = new AtomicBoolean(true); - while (!ai.weakCompareAndSet(true,false)); + do {} while (!ai.weakCompareAndSet(true, false)); assertFalse(ai.get()); - while (!ai.weakCompareAndSet(false,false)); + do {} while (!ai.weakCompareAndSet(false, false)); assertFalse(ai.get()); - while (!ai.weakCompareAndSet(false,true)); + do {} while (!ai.weakCompareAndSet(false, true)); assertTrue(ai.get()); } @@ -107,15 +110,18 @@ public class AtomicBooleanTest extends J * getAndSet returns previous value and sets to given value */ public void testGetAndSet() { - AtomicBoolean ai = new AtomicBoolean(true); - assertEquals(true,ai.getAndSet(false)); - assertEquals(false,ai.getAndSet(false)); - assertEquals(false,ai.getAndSet(true)); - assertTrue(ai.get()); + AtomicBoolean ai = new AtomicBoolean(); + boolean[] booleans = { false, true }; + for (boolean before : booleans) + for (boolean after : booleans) { + ai.set(before); + assertEquals(before, ai.getAndSet(after)); + assertEquals(after, ai.get()); + } } /** - * a deserialized serialized atomic holds same value + * a deserialized/reserialized atomic holds same value */ public void testSerialization() throws Exception { AtomicBoolean x = new AtomicBoolean(); @@ -132,9 +138,9 @@ public class AtomicBooleanTest extends J */ public void testToString() { AtomicBoolean ai = new AtomicBoolean(); - assertEquals(ai.toString(), Boolean.toString(false)); + assertEquals(Boolean.toString(false), ai.toString()); ai.set(true); - assertEquals(ai.toString(), Boolean.toString(true)); + assertEquals(Boolean.toString(true), ai.toString()); } }