Android patch: Modify test.java.util.concurrent.tck tests to pass on Android - Attempt 2
The 1st attempt is reverted due to http://b/181312360. The solution is
to mark Collection8Test as abstract class instead. Verified by running
`atest CtsLibcoreOjTestCases`
To add API coverage to classes, e.g. java.util.SplittableRandom
A few tests are removed because they are not compiled on Android.
SubmissionPublisherTest: Android has not SubmissionPublisher class
TimeUnit8Test: Android doesn't have all the APIs as upstream 9+181.
Atomic*9Test: Android doesn't have all the APIs as upstream 9+181
Note that test.java.util.concurrent.tck has some similiar tests as
tests in libcore/jsr166-tests, but they are not strict superset or
subset. Upstream apparently will add more tests over the time as
*9Test are new.
Test failures are added into expectations/knownfailures.txt.
b/181171596 to invesigate the failures in details
Bug: 119393918
Test: atest CtsLibcoreOjTestCases
Change-Id: I70ff582fe5331aa74c44f556722afcdc958e0ac8
diff --git a/JavaLibrary.bp b/JavaLibrary.bp
index 0ddbe61..db3e75a 100644
--- a/JavaLibrary.bp
+++ b/JavaLibrary.bp
@@ -673,7 +673,10 @@
"bouncycastle",
],
- static_libs: ["testng"],
+ static_libs: [
+ "junit",
+ "testng",
+ ],
// ojluni/src/test/java/util/stream/{bootlib,boottest}
// contains tests that are in packages from java.base;
@@ -730,6 +733,7 @@
system_modules: "core-all-system-modules",
libs: [
"bouncycastle",
+ "junit",
"okhttp",
"testng",
],
diff --git a/expectations/knownfailures.txt b/expectations/knownfailures.txt
index 3ef0559..99fe651 100644
--- a/expectations/knownfailures.txt
+++ b/expectations/knownfailures.txt
@@ -1791,5 +1791,37 @@
result: EXEC_FAILED,
bug: 62408076,
name: "libcore.java.lang.reflect.annotations.AnnotatedElementParameterTest#testImplicitConstructorParameters_singleAnnotation"
+},
+{
+ description: "Android has different implementation in classes, e.g. SecurityManager.",
+ result: EXEC_FAILED,
+ bug: 181171596,
+ names: [
+ "test.java.util.concurrent.tck.AbstractExecutorServiceTest#testSubmitFailedPrivilegedExceptionAction",
+ "test.java.util.concurrent.tck.AbstractExecutorServiceTest#testSubmitPrivilegedAction",
+ "test.java.util.concurrent.tck.AbstractExecutorServiceTest#testSubmitPrivilegedExceptionAction",
+ "test.java.util.concurrent.tck.CompletableFutureTest#testMinimalCompletionStage_toCompletableFuture_exceptionalCompletion",
+ "test.java.util.concurrent.tck.CompletableFutureTest#testMinimalCompletionStage_toCompletableFuture_join",
+ "test.java.util.concurrent.tck.CompletableFutureTest#testMinimalCompletionStage_toCompletableFuture_mutable",
+ "test.java.util.concurrent.tck.CompletableFutureTest#testMinimalCompletionStage_toCompletableFuture_normalCompletion",
+ "test.java.util.concurrent.tck.CompletableFutureTest#testMinimalCompletionStage_toCompletableFuture_oneWayPropagation",
+ "test.java.util.concurrent.tck.CompletableFutureTest#testToCompletableFutureGarbageRetention",
+ "test.java.util.concurrent.tck.ExecutorsTest#testCreatePrivilegedCallableUsingCCLWithNoPrivs",
+ "test.java.util.concurrent.tck.ExecutorsTest#testPrivilegedCallableUsingCCLWithPrivs",
+ "test.java.util.concurrent.tck.ExecutorsTest#testPrivilegedCallableWithNoPrivs",
+ "test.java.util.concurrent.tck.ExecutorsTest#testPrivilegedCallableWithPrivs",
+ "test.java.util.concurrent.tck.ExecutorsTest#testPrivilegedThreadFactory",
+ "test.java.util.concurrent.tck.ForkJoinPoolTest#testSubmitFailedPrivilegedExceptionAction",
+ "test.java.util.concurrent.tck.ForkJoinPoolTest#testSubmitPrivilegedAction",
+ "test.java.util.concurrent.tck.ForkJoinPoolTest#testSubmitPrivilegedExceptionAction",
+ "test.java.util.concurrent.tck.PriorityQueueTest#testOfferNonComparable",
+ "test.java.util.concurrent.tck.StampedLockTest#testDeeplyNestedReadLocks",
+ "test.java.util.concurrent.tck.StampedLockTest#testReadLock_lockUnlock",
+ "test.java.util.concurrent.tck.StampedLockTest#testTryConvertToOptimisticRead",
+ "test.java.util.concurrent.tck.StampedLockTest#testTryConvertToReadLock",
+ "test.java.util.concurrent.tck.StampedLockTest#testTryConvertToWriteLock",
+ "test.java.util.concurrent.tck.ThreadPoolExecutorTest#testPoolSizeInvariants",
+ "test.java.util.concurrent.tck.ThreadTest#testGetAndSetDefaultUncaughtExceptionHandler"
+ ]
}
]
diff --git a/ojluni/src/test/java/util/concurrent/tck/AbstractExecutorServiceTest.java b/ojluni/src/test/java/util/concurrent/tck/AbstractExecutorServiceTest.java
index 3578227..7074509 100644
--- a/ojluni/src/test/java/util/concurrent/tck/AbstractExecutorServiceTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/AbstractExecutorServiceTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import java.security.PrivilegedAction;
diff --git a/ojluni/src/test/java/util/concurrent/tck/AbstractQueueTest.java b/ojluni/src/test/java/util/concurrent/tck/AbstractQueueTest.java
index ddc769d..c7bb03c 100644
--- a/ojluni/src/test/java/util/concurrent/tck/AbstractQueueTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/AbstractQueueTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import java.util.AbstractQueue;
import java.util.Arrays;
import java.util.Iterator;
diff --git a/ojluni/src/test/java/util/concurrent/tck/AbstractQueuedLongSynchronizerTest.java b/ojluni/src/test/java/util/concurrent/tck/AbstractQueuedLongSynchronizerTest.java
index fd8746d..5c76697 100644
--- a/ojluni/src/test/java/util/concurrent/tck/AbstractQueuedLongSynchronizerTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/AbstractQueuedLongSynchronizerTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static java.util.concurrent.TimeUnit.NANOSECONDS;
diff --git a/ojluni/src/test/java/util/concurrent/tck/AbstractQueuedSynchronizerTest.java b/ojluni/src/test/java/util/concurrent/tck/AbstractQueuedSynchronizerTest.java
index 3c13a45..1f79e2c 100644
--- a/ojluni/src/test/java/util/concurrent/tck/AbstractQueuedSynchronizerTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/AbstractQueuedSynchronizerTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static java.util.concurrent.TimeUnit.NANOSECONDS;
diff --git a/ojluni/src/test/java/util/concurrent/tck/ArrayBlockingQueueTest.java b/ojluni/src/test/java/util/concurrent/tck/ArrayBlockingQueueTest.java
index cb98398..23b11d7 100644
--- a/ojluni/src/test/java/util/concurrent/tck/ArrayBlockingQueueTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/ArrayBlockingQueueTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import java.util.ArrayList;
diff --git a/ojluni/src/test/java/util/concurrent/tck/ArrayDeque8Test.java b/ojluni/src/test/java/util/concurrent/tck/ArrayDeque8Test.java
index 0a7f26b..a25d036 100644
--- a/ojluni/src/test/java/util/concurrent/tck/ArrayDeque8Test.java
+++ b/ojluni/src/test/java/util/concurrent/tck/ArrayDeque8Test.java
@@ -32,6 +32,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import java.util.ArrayDeque;
import java.util.Collections;
import java.util.Spliterator;
diff --git a/ojluni/src/test/java/util/concurrent/tck/ArrayDequeTest.java b/ojluni/src/test/java/util/concurrent/tck/ArrayDequeTest.java
index 1bbd981..1cff7ff 100644
--- a/ojluni/src/test/java/util/concurrent/tck/ArrayDequeTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/ArrayDequeTest.java
@@ -32,6 +32,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import java.util.ArrayDeque;
import java.util.Arrays;
import java.util.Collection;
diff --git a/ojluni/src/test/java/util/concurrent/tck/ArrayListTest.java b/ojluni/src/test/java/util/concurrent/tck/ArrayListTest.java
index 193b4af..b168d50 100644
--- a/ojluni/src/test/java/util/concurrent/tck/ArrayListTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/ArrayListTest.java
@@ -32,6 +32,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
diff --git a/ojluni/src/test/java/util/concurrent/tck/Atomic8Test.java b/ojluni/src/test/java/util/concurrent/tck/Atomic8Test.java
index 4784aa7..dc3af4c 100644
--- a/ojluni/src/test/java/util/concurrent/tck/Atomic8Test.java
+++ b/ojluni/src/test/java/util/concurrent/tck/Atomic8Test.java
@@ -32,6 +32,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicIntegerArray;
import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
diff --git a/ojluni/src/test/java/util/concurrent/tck/AtomicBoolean9Test.java b/ojluni/src/test/java/util/concurrent/tck/AtomicBoolean9Test.java
deleted file mode 100644
index fd27716..0000000
--- a/ojluni/src/test/java/util/concurrent/tck/AtomicBoolean9Test.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file:
- *
- * Written by Doug Lea with assistance from members of JCP JSR-166
- * Expert Group and released to the public domain, as explained at
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-import java.util.concurrent.atomic.AtomicBoolean;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class AtomicBoolean9Test extends JSR166TestCase {
- public static void main(String[] args) {
- main(suite(), args);
- }
- public static Test suite() {
- return new TestSuite(AtomicBoolean9Test.class);
- }
-
- /**
- * getPlain returns the last value set
- */
- public void testGetPlainSet() {
- AtomicBoolean ai = new AtomicBoolean(true);
- assertEquals(true, ai.getPlain());
- ai.set(false);
- assertEquals(false, ai.getPlain());
- ai.set(true);
- assertEquals(true, ai.getPlain());
- }
-
- /**
- * getOpaque returns the last value set
- */
- public void testGetOpaqueSet() {
- AtomicBoolean ai = new AtomicBoolean(true);
- assertEquals(true, ai.getOpaque());
- ai.set(false);
- assertEquals(false, ai.getOpaque());
- ai.set(true);
- assertEquals(true, ai.getOpaque());
- }
-
- /**
- * getAcquire returns the last value set
- */
- public void testGetAcquireSet() {
- AtomicBoolean ai = new AtomicBoolean(true);
- assertEquals(true, ai.getAcquire());
- ai.set(false);
- assertEquals(false, ai.getAcquire());
- ai.set(true);
- assertEquals(true, ai.getAcquire());
- }
-
- /**
- * get returns the last value setPlain
- */
- public void testGetSetPlain() {
- AtomicBoolean ai = new AtomicBoolean(true);
- assertEquals(true, ai.get());
- ai.setPlain(false);
- assertEquals(false, ai.get());
- ai.setPlain(true);
- assertEquals(true, ai.get());
- }
-
- /**
- * get returns the last value setOpaque
- */
- public void testGetSetOpaque() {
- AtomicBoolean ai = new AtomicBoolean(true);
- assertEquals(true, ai.get());
- ai.setOpaque(false);
- assertEquals(false, ai.get());
- ai.setOpaque(true);
- assertEquals(true, ai.get());
- }
-
- /**
- * get returns the last value setRelease
- */
- public void testGetSetRelease() {
- AtomicBoolean ai = new AtomicBoolean(true);
- assertEquals(true, ai.get());
- ai.setRelease(false);
- assertEquals(false, ai.get());
- ai.setRelease(true);
- assertEquals(true, ai.get());
- }
-
- /**
- * compareAndExchange succeeds in changing value if equal to
- * expected else fails
- */
- public void testCompareAndExchange() {
- AtomicBoolean ai = new AtomicBoolean(true);
- assertEquals(true, ai.compareAndExchange(true, false));
- assertEquals(false, ai.compareAndExchange(false, false));
- assertEquals(false, ai.get());
- assertEquals(false, ai.compareAndExchange(true, true));
- assertEquals(false, ai.get());
- assertEquals(false, ai.compareAndExchange(false, true));
- assertEquals(true, ai.get());
- }
-
- /**
- * compareAndExchangeAcquire succeeds in changing value if equal to
- * expected else fails
- */
- public void testCompareAndExchangeAcquire() {
- AtomicBoolean ai = new AtomicBoolean(true);
- assertEquals(true, ai.compareAndExchangeAcquire(true, false));
- assertEquals(false, ai.compareAndExchangeAcquire(false, false));
- assertEquals(false, ai.get());
- assertEquals(false, ai.compareAndExchangeAcquire(true, true));
- assertEquals(false, ai.get());
- assertEquals(false, ai.compareAndExchangeAcquire(false, true));
- assertEquals(true, ai.get());
- }
-
- /**
- * compareAndExchangeRelease succeeds in changing value if equal to
- * expected else fails
- */
- public void testCompareAndExchangeRelease() {
- AtomicBoolean ai = new AtomicBoolean(true);
- assertEquals(true, ai.compareAndExchangeRelease(true, false));
- assertEquals(false, ai.compareAndExchangeRelease(false, false));
- assertEquals(false, ai.get());
- assertEquals(false, ai.compareAndExchangeRelease(true, true));
- assertEquals(false, ai.get());
- assertEquals(false, ai.compareAndExchangeRelease(false, true));
- assertEquals(true, ai.get());
- }
-
- /**
- * repeated weakCompareAndSetPlain succeeds in changing value when equal
- * to expected
- */
- public void testWeakCompareAndSetPlain() {
- AtomicBoolean ai = new AtomicBoolean(true);
- do {} while (!ai.weakCompareAndSetPlain(true, false));
- do {} while (!ai.weakCompareAndSetPlain(false, false));
- assertFalse(ai.get());
- do {} while (!ai.weakCompareAndSetPlain(false, true));
- assertTrue(ai.get());
- }
-
- /**
- * repeated weakCompareAndSetVolatile succeeds in changing value when equal
- * to expected
- */
- public void testWeakCompareAndSetVolatile() {
- AtomicBoolean ai = new AtomicBoolean(true);
- do {} while (!ai.weakCompareAndSetVolatile(true, false));
- do {} while (!ai.weakCompareAndSetVolatile(false, false));
- assertEquals(false, ai.get());
- do {} while (!ai.weakCompareAndSetVolatile(false, true));
- assertEquals(true, ai.get());
- }
-
- /**
- * repeated weakCompareAndSetAcquire succeeds in changing value when equal
- * to expected
- */
- public void testWeakCompareAndSetAcquire() {
- AtomicBoolean ai = new AtomicBoolean(true);
- do {} while (!ai.weakCompareAndSetAcquire(true, false));
- do {} while (!ai.weakCompareAndSetAcquire(false, false));
- assertEquals(false, ai.get());
- do {} while (!ai.weakCompareAndSetAcquire(false, true));
- assertEquals(true, ai.get());
- }
-
- /**
- * repeated weakCompareAndSetRelease succeeds in changing value when equal
- * to expected
- */
- public void testWeakCompareAndSetRelease() {
- AtomicBoolean ai = new AtomicBoolean(true);
- do {} while (!ai.weakCompareAndSetRelease(true, false));
- do {} while (!ai.weakCompareAndSetRelease(false, false));
- assertEquals(false, ai.get());
- do {} while (!ai.weakCompareAndSetRelease(false, true));
- assertEquals(true, ai.get());
- }
-
-}
diff --git a/ojluni/src/test/java/util/concurrent/tck/AtomicBooleanTest.java b/ojluni/src/test/java/util/concurrent/tck/AtomicBooleanTest.java
index be13635..4d666da 100644
--- a/ojluni/src/test/java/util/concurrent/tck/AtomicBooleanTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/AtomicBooleanTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import java.util.concurrent.atomic.AtomicBoolean;
import junit.framework.Test;
diff --git a/ojluni/src/test/java/util/concurrent/tck/AtomicInteger9Test.java b/ojluni/src/test/java/util/concurrent/tck/AtomicInteger9Test.java
deleted file mode 100644
index cd18c23..0000000
--- a/ojluni/src/test/java/util/concurrent/tck/AtomicInteger9Test.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file:
- *
- * Written by Doug Lea with assistance from members of JCP JSR-166
- * Expert Group and released to the public domain, as explained at
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-import java.util.concurrent.atomic.AtomicInteger;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class AtomicInteger9Test extends JSR166TestCase {
- public static void main(String[] args) {
- main(suite(), args);
- }
- public static Test suite() {
- return new TestSuite(AtomicInteger9Test.class);
- }
-
- /**
- * getPlain returns the last value set
- */
- public void testGetPlainSet() {
- AtomicInteger ai = new AtomicInteger(1);
- assertEquals(1, ai.getPlain());
- ai.set(2);
- assertEquals(2, ai.getPlain());
- ai.set(-3);
- assertEquals(-3, ai.getPlain());
- }
-
- /**
- * getOpaque returns the last value set
- */
- public void testGetOpaqueSet() {
- AtomicInteger ai = new AtomicInteger(1);
- assertEquals(1, ai.getOpaque());
- ai.set(2);
- assertEquals(2, ai.getOpaque());
- ai.set(-3);
- assertEquals(-3, ai.getOpaque());
- }
-
- /**
- * getAcquire returns the last value set
- */
- public void testGetAcquireSet() {
- AtomicInteger ai = new AtomicInteger(1);
- assertEquals(1, ai.getAcquire());
- ai.set(2);
- assertEquals(2, ai.getAcquire());
- ai.set(-3);
- assertEquals(-3, ai.getAcquire());
- }
-
- /**
- * get returns the last value setPlain
- */
- public void testGetSetPlain() {
- AtomicInteger ai = new AtomicInteger(1);
- assertEquals(1, ai.get());
- ai.setPlain(2);
- assertEquals(2, ai.get());
- ai.setPlain(-3);
- assertEquals(-3, ai.get());
- }
-
- /**
- * get returns the last value setOpaque
- */
- public void testGetSetOpaque() {
- AtomicInteger ai = new AtomicInteger(1);
- assertEquals(1, ai.get());
- ai.setOpaque(2);
- assertEquals(2, ai.get());
- ai.setOpaque(-3);
- assertEquals(-3, ai.get());
- }
-
- /**
- * get returns the last value setRelease
- */
- public void testGetSetRelease() {
- AtomicInteger ai = new AtomicInteger(1);
- assertEquals(1, ai.get());
- ai.setRelease(2);
- assertEquals(2, ai.get());
- ai.setRelease(-3);
- assertEquals(-3, ai.get());
- }
-
- /**
- * compareAndExchange succeeds in changing value if equal to
- * expected else fails
- */
- public void testCompareAndExchange() {
- AtomicInteger ai = new AtomicInteger(1);
- assertEquals(1, ai.compareAndExchange(1, 2));
- assertEquals(2, ai.compareAndExchange(2, -4));
- assertEquals(-4, ai.get());
- assertEquals(-4, ai.compareAndExchange(-5, 7));
- assertEquals(-4, ai.get());
- assertEquals(-4, ai.compareAndExchange(-4, 7));
- assertEquals(7, ai.get());
- }
-
- /**
- * compareAndExchangeAcquire succeeds in changing value if equal to
- * expected else fails
- */
- public void testCompareAndExchangeAcquire() {
- AtomicInteger ai = new AtomicInteger(1);
- assertEquals(1, ai.compareAndExchangeAcquire(1, 2));
- assertEquals(2, ai.compareAndExchangeAcquire(2, -4));
- assertEquals(-4, ai.get());
- assertEquals(-4, ai.compareAndExchangeAcquire(-5, 7));
- assertEquals(-4, ai.get());
- assertEquals(-4, ai.compareAndExchangeAcquire(-4, 7));
- assertEquals(7, ai.get());
- }
-
- /**
- * compareAndExchangeRelease succeeds in changing value if equal to
- * expected else fails
- */
- public void testCompareAndExchangeRelease() {
- AtomicInteger ai = new AtomicInteger(1);
- assertEquals(1, ai.compareAndExchangeRelease(1, 2));
- assertEquals(2, ai.compareAndExchangeRelease(2, -4));
- assertEquals(-4, ai.get());
- assertEquals(-4, ai.compareAndExchangeRelease(-5, 7));
- assertEquals(-4, ai.get());
- assertEquals(-4, ai.compareAndExchangeRelease(-4, 7));
- assertEquals(7, ai.get());
- }
-
- /**
- * repeated weakCompareAndSetPlain succeeds in changing value when equal
- * to expected
- */
- public void testWeakCompareAndSetPlain() {
- AtomicInteger ai = new AtomicInteger(1);
- do {} while (!ai.weakCompareAndSetPlain(1, 2));
- do {} while (!ai.weakCompareAndSetPlain(2, -4));
- assertEquals(-4, ai.get());
- do {} while (!ai.weakCompareAndSetPlain(-4, 7));
- assertEquals(7, ai.get());
- }
-
- /**
- * repeated weakCompareAndSetVolatile succeeds in changing value when equal
- * to expected
- */
- public void testWeakCompareAndSetVolatile() {
- AtomicInteger ai = new AtomicInteger(1);
- do {} while (!ai.weakCompareAndSetVolatile(1, 2));
- do {} while (!ai.weakCompareAndSetVolatile(2, -4));
- assertEquals(-4, ai.get());
- do {} while (!ai.weakCompareAndSetVolatile(-4, 7));
- assertEquals(7, ai.get());
- }
-
- /**
- * repeated weakCompareAndSetAcquire succeeds in changing value when equal
- * to expected
- */
- public void testWeakCompareAndSetAcquire() {
- AtomicInteger ai = new AtomicInteger(1);
- do {} while (!ai.weakCompareAndSetAcquire(1, 2));
- do {} while (!ai.weakCompareAndSetAcquire(2, -4));
- assertEquals(-4, ai.get());
- do {} while (!ai.weakCompareAndSetAcquire(-4, 7));
- assertEquals(7, ai.get());
- }
-
- /**
- * repeated weakCompareAndSetRelease succeeds in changing value when equal
- * to expected
- */
- public void testWeakCompareAndSetRelease() {
- AtomicInteger ai = new AtomicInteger(1);
- do {} while (!ai.weakCompareAndSetRelease(1, 2));
- do {} while (!ai.weakCompareAndSetRelease(2, -4));
- assertEquals(-4, ai.get());
- do {} while (!ai.weakCompareAndSetRelease(-4, 7));
- assertEquals(7, ai.get());
- }
-
-}
diff --git a/ojluni/src/test/java/util/concurrent/tck/AtomicIntegerArray9Test.java b/ojluni/src/test/java/util/concurrent/tck/AtomicIntegerArray9Test.java
deleted file mode 100644
index eb25146..0000000
--- a/ojluni/src/test/java/util/concurrent/tck/AtomicIntegerArray9Test.java
+++ /dev/null
@@ -1,283 +0,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file:
- *
- * Written by Doug Lea with assistance from members of JCP JSR-166
- * Expert Group and released to the public domain, as explained at
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-import java.util.concurrent.atomic.AtomicIntegerArray;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class AtomicIntegerArray9Test extends JSR166TestCase {
-
- public static void main(String[] args) {
- main(suite(), args);
- }
- public static Test suite() {
- return new TestSuite(AtomicIntegerArray9Test.class);
- }
-
- /**
- * get and set for out of bound indices throw IndexOutOfBoundsException
- */
- public void testIndexing() {
- AtomicIntegerArray aa = new AtomicIntegerArray(SIZE);
- for (int index : new int[] { -1, SIZE }) {
- final int j = index;
- final Runnable[] tasks = {
- () -> aa.getPlain(j),
- () -> aa.getOpaque(j),
- () -> aa.getAcquire(j),
- () -> aa.setPlain(j, 1),
- () -> aa.setOpaque(j, 1),
- () -> aa.setRelease(j, 1),
- () -> aa.compareAndExchange(j, 1, 2),
- () -> aa.compareAndExchangeAcquire(j, 1, 2),
- () -> aa.compareAndExchangeRelease(j, 1, 2),
- () -> aa.weakCompareAndSetPlain(j, 1, 2),
- () -> aa.weakCompareAndSetVolatile(j, 1, 2),
- () -> aa.weakCompareAndSetAcquire(j, 1, 2),
- () -> aa.weakCompareAndSetRelease(j, 1, 2),
- };
-
- assertThrows(IndexOutOfBoundsException.class, tasks);
- }
- }
-
- /**
- * getPlain returns the last value set
- */
- public void testGetPlainSet() {
- AtomicIntegerArray aa = new AtomicIntegerArray(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.set(i, 1);
- assertEquals(1, aa.getPlain(i));
- aa.set(i, 2);
- assertEquals(2, aa.getPlain(i));
- aa.set(i, -3);
- assertEquals(-3, aa.getPlain(i));
- }
- }
-
- /**
- * getOpaque returns the last value set
- */
- public void testGetOpaqueSet() {
- AtomicIntegerArray aa = new AtomicIntegerArray(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.set(i, 1);
- assertEquals(1, aa.getOpaque(i));
- aa.set(i, 2);
- assertEquals(2, aa.getOpaque(i));
- aa.set(i, -3);
- assertEquals(-3, aa.getOpaque(i));
- }
- }
-
- /**
- * getAcquire returns the last value set
- */
- public void testGetAcquireSet() {
- AtomicIntegerArray aa = new AtomicIntegerArray(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.set(i, 1);
- assertEquals(1, aa.getAcquire(i));
- aa.set(i, 2);
- assertEquals(2, aa.getAcquire(i));
- aa.set(i, -3);
- assertEquals(-3, aa.getAcquire(i));
- }
- }
-
- /**
- * get returns the last value setPlain
- */
- public void testGetSetPlain() {
- AtomicIntegerArray aa = new AtomicIntegerArray(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.setPlain(i, 1);
- assertEquals(1, aa.get(i));
- aa.setPlain(i, 2);
- assertEquals(2, aa.get(i));
- aa.setPlain(i, -3);
- assertEquals(-3, aa.get(i));
- }
- }
-
- /**
- * get returns the last value setOpaque
- */
- public void testGetSetOpaque() {
- AtomicIntegerArray aa = new AtomicIntegerArray(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.setOpaque(i, 1);
- assertEquals(1, aa.get(i));
- aa.setOpaque(i, 2);
- assertEquals(2, aa.get(i));
- aa.setOpaque(i, -3);
- assertEquals(-3, aa.get(i));
- }
- }
-
- /**
- * get returns the last value setRelease
- */
- public void testGetSetRelease() {
- AtomicIntegerArray aa = new AtomicIntegerArray(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.setRelease(i, 1);
- assertEquals(1, aa.get(i));
- aa.setRelease(i, 2);
- assertEquals(2, aa.get(i));
- aa.setRelease(i, -3);
- assertEquals(-3, aa.get(i));
- }
- }
-
- /**
- * compareAndExchange succeeds in changing value if equal to
- * expected else fails
- */
- public void testCompareAndExchange() {
- AtomicIntegerArray aa = new AtomicIntegerArray(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.set(i, 1);
- assertEquals(1, aa.compareAndExchange(i, 1, 2));
- assertEquals(2, aa.compareAndExchange(i, 2, -4));
- assertEquals(-4, aa.get(i));
- assertEquals(-4, aa.compareAndExchange(i,-5, 7));
- assertEquals(-4, aa.get(i));
- assertEquals(-4, aa.compareAndExchange(i, -4, 7));
- assertEquals(7, aa.get(i));
- }
- }
-
- /**
- * compareAndExchangeAcquire succeeds in changing value if equal to
- * expected else fails
- */
- public void testCompareAndExchangeAcquire() {
- AtomicIntegerArray aa = new AtomicIntegerArray(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.set(i, 1);
- assertEquals(1, aa.compareAndExchangeAcquire(i, 1, 2));
- assertEquals(2, aa.compareAndExchangeAcquire(i, 2, -4));
- assertEquals(-4, aa.get(i));
- assertEquals(-4, aa.compareAndExchangeAcquire(i,-5, 7));
- assertEquals(-4, aa.get(i));
- assertEquals(-4, aa.compareAndExchangeAcquire(i, -4, 7));
- assertEquals(7, aa.get(i));
- }
- }
-
- /**
- * compareAndExchangeRelease succeeds in changing value if equal to
- * expected else fails
- */
- public void testCompareAndExchangeRelease() {
- AtomicIntegerArray aa = new AtomicIntegerArray(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.set(i, 1);
- assertEquals(1, aa.compareAndExchangeRelease(i, 1, 2));
- assertEquals(2, aa.compareAndExchangeRelease(i, 2, -4));
- assertEquals(-4, aa.get(i));
- assertEquals(-4, aa.compareAndExchangeRelease(i,-5, 7));
- assertEquals(-4, aa.get(i));
- assertEquals(-4, aa.compareAndExchangeRelease(i, -4, 7));
- assertEquals(7, aa.get(i));
- }
- }
-
- /**
- * repeated weakCompareAndSetPlain succeeds in changing value when equal
- * to expected
- */
- public void testWeakCompareAndSetPlain() {
- AtomicIntegerArray aa = new AtomicIntegerArray(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.set(i, 1);
- do {} while (!aa.weakCompareAndSetPlain(i, 1, 2));
- do {} while (!aa.weakCompareAndSetPlain(i, 2, -4));
- assertEquals(-4, aa.get(i));
- do {} while (!aa.weakCompareAndSetPlain(i, -4, 7));
- assertEquals(7, aa.get(i));
- }
- }
-
- /**
- * repeated weakCompareAndSetVolatile succeeds in changing value when equal
- * to expected
- */
- public void testWeakCompareAndSetVolatile() {
- AtomicIntegerArray aa = new AtomicIntegerArray(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.set(i, 1);
- do {} while (!aa.weakCompareAndSetVolatile(i, 1, 2));
- do {} while (!aa.weakCompareAndSetVolatile(i, 2, -4));
- assertEquals(-4, aa.get(i));
- do {} while (!aa.weakCompareAndSetVolatile(i, -4, 7));
- assertEquals(7, aa.get(i));
- }
- }
-
- /**
- * repeated weakCompareAndSetAcquire succeeds in changing value when equal
- * to expected
- */
- public void testWeakCompareAndSetAcquire() {
- AtomicIntegerArray aa = new AtomicIntegerArray(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.set(i, 1);
- do {} while (!aa.weakCompareAndSetAcquire(i, 1, 2));
- do {} while (!aa.weakCompareAndSetAcquire(i, 2, -4));
- assertEquals(-4, aa.get(i));
- do {} while (!aa.weakCompareAndSetAcquire(i, -4, 7));
- assertEquals(7, aa.get(i));
- }
- }
-
- /**
- * repeated weakCompareAndSetRelease succeeds in changing value when equal
- * to expected
- */
- public void testWeakCompareAndSetRelease() {
- AtomicIntegerArray aa = new AtomicIntegerArray(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.set(i, 1);
- do {} while (!aa.weakCompareAndSetRelease(i, 1, 2));
- do {} while (!aa.weakCompareAndSetRelease(i, 2, -4));
- assertEquals(-4, aa.get(i));
- do {} while (!aa.weakCompareAndSetRelease(i, -4, 7));
- assertEquals(7, aa.get(i));
- }
- }
-
-}
diff --git a/ojluni/src/test/java/util/concurrent/tck/AtomicIntegerArrayTest.java b/ojluni/src/test/java/util/concurrent/tck/AtomicIntegerArrayTest.java
index e122840..e24d0ea 100644
--- a/ojluni/src/test/java/util/concurrent/tck/AtomicIntegerArrayTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/AtomicIntegerArrayTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import java.util.Arrays;
import java.util.concurrent.atomic.AtomicIntegerArray;
diff --git a/ojluni/src/test/java/util/concurrent/tck/AtomicIntegerFieldUpdaterTest.java b/ojluni/src/test/java/util/concurrent/tck/AtomicIntegerFieldUpdaterTest.java
index 5f7612d..0d6f79a 100644
--- a/ojluni/src/test/java/util/concurrent/tck/AtomicIntegerFieldUpdaterTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/AtomicIntegerFieldUpdaterTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
import junit.framework.Test;
diff --git a/ojluni/src/test/java/util/concurrent/tck/AtomicIntegerTest.java b/ojluni/src/test/java/util/concurrent/tck/AtomicIntegerTest.java
index d148788..111cd3f 100644
--- a/ojluni/src/test/java/util/concurrent/tck/AtomicIntegerTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/AtomicIntegerTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import java.util.concurrent.atomic.AtomicInteger;
import junit.framework.Test;
diff --git a/ojluni/src/test/java/util/concurrent/tck/AtomicLong9Test.java b/ojluni/src/test/java/util/concurrent/tck/AtomicLong9Test.java
deleted file mode 100644
index c83f132..0000000
--- a/ojluni/src/test/java/util/concurrent/tck/AtomicLong9Test.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file:
- *
- * Written by Doug Lea with assistance from members of JCP JSR-166
- * Expert Group and released to the public domain, as explained at
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-import java.util.concurrent.atomic.AtomicLong;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class AtomicLong9Test extends JSR166TestCase {
- public static void main(String[] args) {
- main(suite(), args);
- }
- public static Test suite() {
- return new TestSuite(AtomicLong9Test.class);
- }
-
- /**
- * getPlain returns the last value set
- */
- public void testGetPlainSet() {
- AtomicLong ai = new AtomicLong(1);
- assertEquals(1, ai.getPlain());
- ai.set(2);
- assertEquals(2, ai.getPlain());
- ai.set(-3);
- assertEquals(-3, ai.getPlain());
- }
-
- /**
- * getOpaque returns the last value set
- */
- public void testGetOpaqueSet() {
- AtomicLong ai = new AtomicLong(1);
- assertEquals(1, ai.getOpaque());
- ai.set(2);
- assertEquals(2, ai.getOpaque());
- ai.set(-3);
- assertEquals(-3, ai.getOpaque());
- }
-
- /**
- * getAcquire returns the last value set
- */
- public void testGetAcquireSet() {
- AtomicLong ai = new AtomicLong(1);
- assertEquals(1, ai.getAcquire());
- ai.set(2);
- assertEquals(2, ai.getAcquire());
- ai.set(-3);
- assertEquals(-3, ai.getAcquire());
- }
-
- /**
- * get returns the last value setPlain
- */
- public void testGetSetPlain() {
- AtomicLong ai = new AtomicLong(1);
- assertEquals(1, ai.get());
- ai.setPlain(2);
- assertEquals(2, ai.get());
- ai.setPlain(-3);
- assertEquals(-3, ai.get());
- }
-
- /**
- * get returns the last value setOpaque
- */
- public void testGetSetOpaque() {
- AtomicLong ai = new AtomicLong(1);
- assertEquals(1, ai.get());
- ai.setOpaque(2);
- assertEquals(2, ai.get());
- ai.setOpaque(-3);
- assertEquals(-3, ai.get());
- }
-
- /**
- * get returns the last value setRelease
- */
- public void testGetSetRelease() {
- AtomicLong ai = new AtomicLong(1);
- assertEquals(1, ai.get());
- ai.setRelease(2);
- assertEquals(2, ai.get());
- ai.setRelease(-3);
- assertEquals(-3, ai.get());
- }
-
- /**
- * compareAndExchange succeeds in changing value if equal to
- * expected else fails
- */
- public void testCompareAndExchange() {
- AtomicLong ai = new AtomicLong(1);
- assertEquals(1, ai.compareAndExchange(1, 2));
- assertEquals(2, ai.compareAndExchange(2, -4));
- assertEquals(-4, ai.get());
- assertEquals(-4, ai.compareAndExchange(-5, 7));
- assertEquals(-4, ai.get());
- assertEquals(-4, ai.compareAndExchange(-4, 7));
- assertEquals(7, ai.get());
- }
-
- /**
- * compareAndExchangeAcquire succeeds in changing value if equal to
- * expected else fails
- */
- public void testCompareAndExchangeAcquire() {
- AtomicLong ai = new AtomicLong(1);
- assertEquals(1, ai.compareAndExchangeAcquire(1, 2));
- assertEquals(2, ai.compareAndExchangeAcquire(2, -4));
- assertEquals(-4, ai.get());
- assertEquals(-4, ai.compareAndExchangeAcquire(-5, 7));
- assertEquals(-4, ai.get());
- assertEquals(-4, ai.compareAndExchangeAcquire(-4, 7));
- assertEquals(7, ai.get());
- }
-
- /**
- * compareAndExchangeRelease succeeds in changing value if equal to
- * expected else fails
- */
- public void testCompareAndExchangeRelease() {
- AtomicLong ai = new AtomicLong(1);
- assertEquals(1, ai.compareAndExchangeRelease(1, 2));
- assertEquals(2, ai.compareAndExchangeRelease(2, -4));
- assertEquals(-4, ai.get());
- assertEquals(-4, ai.compareAndExchangeRelease(-5, 7));
- assertEquals(-4, ai.get());
- assertEquals(-4, ai.compareAndExchangeRelease(-4, 7));
- assertEquals(7, ai.get());
- }
-
- /**
- * repeated weakCompareAndSetPlain succeeds in changing value when equal
- * to expected
- */
- public void testWeakCompareAndSetPlain() {
- AtomicLong ai = new AtomicLong(1);
- do {} while (!ai.weakCompareAndSetPlain(1, 2));
- do {} while (!ai.weakCompareAndSetPlain(2, -4));
- assertEquals(-4, ai.get());
- do {} while (!ai.weakCompareAndSetPlain(-4, 7));
- assertEquals(7, ai.get());
- }
-
- /**
- * repeated weakCompareAndSetVolatile succeeds in changing value when equal
- * to expected
- */
- public void testWeakCompareAndSetVolatile() {
- AtomicLong ai = new AtomicLong(1);
- do {} while (!ai.weakCompareAndSetVolatile(1, 2));
- do {} while (!ai.weakCompareAndSetVolatile(2, -4));
- assertEquals(-4, ai.get());
- do {} while (!ai.weakCompareAndSetVolatile(-4, 7));
- assertEquals(7, ai.get());
- }
-
- /**
- * repeated weakCompareAndSetAcquire succeeds in changing value when equal
- * to expected
- */
- public void testWeakCompareAndSetAcquire() {
- AtomicLong ai = new AtomicLong(1);
- do {} while (!ai.weakCompareAndSetAcquire(1, 2));
- do {} while (!ai.weakCompareAndSetAcquire(2, -4));
- assertEquals(-4, ai.get());
- do {} while (!ai.weakCompareAndSetAcquire(-4, 7));
- assertEquals(7, ai.get());
- }
-
- /**
- * repeated weakCompareAndSetRelease succeeds in changing value when equal
- * to expected
- */
- public void testWeakCompareAndSetRelease() {
- AtomicLong ai = new AtomicLong(1);
- do {} while (!ai.weakCompareAndSetRelease(1, 2));
- do {} while (!ai.weakCompareAndSetRelease(2, -4));
- assertEquals(-4, ai.get());
- do {} while (!ai.weakCompareAndSetRelease(-4, 7));
- assertEquals(7, ai.get());
- }
-
-}
diff --git a/ojluni/src/test/java/util/concurrent/tck/AtomicLongArray9Test.java b/ojluni/src/test/java/util/concurrent/tck/AtomicLongArray9Test.java
deleted file mode 100644
index 6c699d4..0000000
--- a/ojluni/src/test/java/util/concurrent/tck/AtomicLongArray9Test.java
+++ /dev/null
@@ -1,282 +0,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file:
- *
- * Written by Doug Lea with assistance from members of JCP JSR-166
- * Expert Group and released to the public domain, as explained at
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-import java.util.concurrent.atomic.AtomicLongArray;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class AtomicLongArray9Test extends JSR166TestCase {
- public static void main(String[] args) {
- main(suite(), args);
- }
- public static Test suite() {
- return new TestSuite(AtomicLongArray9Test.class);
- }
-
- /**
- * get and set for out of bound indices throw IndexOutOfBoundsException
- */
- public void testIndexing() {
- AtomicLongArray aa = new AtomicLongArray(SIZE);
- for (int index : new int[] { -1, SIZE }) {
- final int j = index;
- final Runnable[] tasks = {
- () -> aa.getPlain(j),
- () -> aa.getOpaque(j),
- () -> aa.getAcquire(j),
- () -> aa.setPlain(j, 1),
- () -> aa.setOpaque(j, 1),
- () -> aa.setRelease(j, 1),
- () -> aa.compareAndExchange(j, 1, 2),
- () -> aa.compareAndExchangeAcquire(j, 1, 2),
- () -> aa.compareAndExchangeRelease(j, 1, 2),
- () -> aa.weakCompareAndSetPlain(j, 1, 2),
- () -> aa.weakCompareAndSetVolatile(j, 1, 2),
- () -> aa.weakCompareAndSetAcquire(j, 1, 2),
- () -> aa.weakCompareAndSetRelease(j, 1, 2),
- };
-
- assertThrows(IndexOutOfBoundsException.class, tasks);
- }
- }
-
- /**
- * getPlain returns the last value set
- */
- public void testGetPlainSet() {
- AtomicLongArray aa = new AtomicLongArray(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.set(i, 1);
- assertEquals(1, aa.getPlain(i));
- aa.set(i, 2);
- assertEquals(2, aa.getPlain(i));
- aa.set(i, -3);
- assertEquals(-3, aa.getPlain(i));
- }
- }
-
- /**
- * getOpaque returns the last value set
- */
- public void testGetOpaqueSet() {
- AtomicLongArray aa = new AtomicLongArray(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.set(i, 1);
- assertEquals(1, aa.getOpaque(i));
- aa.set(i, 2);
- assertEquals(2, aa.getOpaque(i));
- aa.set(i, -3);
- assertEquals(-3, aa.getOpaque(i));
- }
- }
-
- /**
- * getAcquire returns the last value set
- */
- public void testGetAcquireSet() {
- AtomicLongArray aa = new AtomicLongArray(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.set(i, 1);
- assertEquals(1, aa.getAcquire(i));
- aa.set(i, 2);
- assertEquals(2, aa.getAcquire(i));
- aa.set(i, -3);
- assertEquals(-3, aa.getAcquire(i));
- }
- }
-
- /**
- * get returns the last value setPlain
- */
- public void testGetSetPlain() {
- AtomicLongArray aa = new AtomicLongArray(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.setPlain(i, 1);
- assertEquals(1, aa.get(i));
- aa.setPlain(i, 2);
- assertEquals(2, aa.get(i));
- aa.setPlain(i, -3);
- assertEquals(-3, aa.get(i));
- }
- }
-
- /**
- * get returns the last value setOpaque
- */
- public void testGetSetOpaque() {
- AtomicLongArray aa = new AtomicLongArray(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.setOpaque(i, 1);
- assertEquals(1, aa.get(i));
- aa.setOpaque(i, 2);
- assertEquals(2, aa.get(i));
- aa.setOpaque(i, -3);
- assertEquals(-3, aa.get(i));
- }
- }
-
- /**
- * get returns the last value setRelease
- */
- public void testGetSetRelease() {
- AtomicLongArray aa = new AtomicLongArray(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.setRelease(i, 1);
- assertEquals(1, aa.get(i));
- aa.setRelease(i, 2);
- assertEquals(2, aa.get(i));
- aa.setRelease(i, -3);
- assertEquals(-3, aa.get(i));
- }
- }
-
- /**
- * compareAndExchange succeeds in changing value if equal to
- * expected else fails
- */
- public void testCompareAndExchange() {
- AtomicLongArray aa = new AtomicLongArray(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.set(i, 1);
- assertEquals(1, aa.compareAndExchange(i, 1, 2));
- assertEquals(2, aa.compareAndExchange(i, 2, -4));
- assertEquals(-4, aa.get(i));
- assertEquals(-4, aa.compareAndExchange(i,-5, 7));
- assertEquals(-4, aa.get(i));
- assertEquals(-4, aa.compareAndExchange(i, -4, 7));
- assertEquals(7, aa.get(i));
- }
- }
-
- /**
- * compareAndExchangeAcquire succeeds in changing value if equal to
- * expected else fails
- */
- public void testCompareAndExchangeAcquire() {
- AtomicLongArray aa = new AtomicLongArray(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.set(i, 1);
- assertEquals(1, aa.compareAndExchangeAcquire(i, 1, 2));
- assertEquals(2, aa.compareAndExchangeAcquire(i, 2, -4));
- assertEquals(-4, aa.get(i));
- assertEquals(-4, aa.compareAndExchangeAcquire(i,-5, 7));
- assertEquals(-4, aa.get(i));
- assertEquals(-4, aa.compareAndExchangeAcquire(i, -4, 7));
- assertEquals(7, aa.get(i));
- }
- }
-
- /**
- * compareAndExchangeRelease succeeds in changing value if equal to
- * expected else fails
- */
- public void testCompareAndExchangeRelease() {
- AtomicLongArray aa = new AtomicLongArray(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.set(i, 1);
- assertEquals(1, aa.compareAndExchangeRelease(i, 1, 2));
- assertEquals(2, aa.compareAndExchangeRelease(i, 2, -4));
- assertEquals(-4, aa.get(i));
- assertEquals(-4, aa.compareAndExchangeRelease(i,-5, 7));
- assertEquals(-4, aa.get(i));
- assertEquals(-4, aa.compareAndExchangeRelease(i, -4, 7));
- assertEquals(7, aa.get(i));
- }
- }
-
- /**
- * repeated weakCompareAndSetPlain succeeds in changing value when equal
- * to expected
- */
- public void testWeakCompareAndSetPlain() {
- AtomicLongArray aa = new AtomicLongArray(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.set(i, 1);
- do {} while (!aa.weakCompareAndSetPlain(i, 1, 2));
- do {} while (!aa.weakCompareAndSetPlain(i, 2, -4));
- assertEquals(-4, aa.get(i));
- do {} while (!aa.weakCompareAndSetPlain(i, -4, 7));
- assertEquals(7, aa.get(i));
- }
- }
-
- /**
- * repeated weakCompareAndSetVolatile succeeds in changing value when equal
- * to expected
- */
- public void testWeakCompareAndSetVolatile() {
- AtomicLongArray aa = new AtomicLongArray(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.set(i, 1);
- do {} while (!aa.weakCompareAndSetVolatile(i, 1, 2));
- do {} while (!aa.weakCompareAndSetVolatile(i, 2, -4));
- assertEquals(-4, aa.get(i));
- do {} while (!aa.weakCompareAndSetVolatile(i, -4, 7));
- assertEquals(7, aa.get(i));
- }
- }
-
- /**
- * repeated weakCompareAndSetAcquire succeeds in changing value when equal
- * to expected
- */
- public void testWeakCompareAndSetAcquire() {
- AtomicLongArray aa = new AtomicLongArray(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.set(i, 1);
- do {} while (!aa.weakCompareAndSetAcquire(i, 1, 2));
- do {} while (!aa.weakCompareAndSetAcquire(i, 2, -4));
- assertEquals(-4, aa.get(i));
- do {} while (!aa.weakCompareAndSetAcquire(i, -4, 7));
- assertEquals(7, aa.get(i));
- }
- }
-
- /**
- * repeated weakCompareAndSetRelease succeeds in changing value when equal
- * to expected
- */
- public void testWeakCompareAndSetRelease() {
- AtomicLongArray aa = new AtomicLongArray(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.set(i, 1);
- do {} while (!aa.weakCompareAndSetRelease(i, 1, 2));
- do {} while (!aa.weakCompareAndSetRelease(i, 2, -4));
- assertEquals(-4, aa.get(i));
- do {} while (!aa.weakCompareAndSetRelease(i, -4, 7));
- assertEquals(7, aa.get(i));
- }
- }
-
-}
diff --git a/ojluni/src/test/java/util/concurrent/tck/AtomicLongArrayTest.java b/ojluni/src/test/java/util/concurrent/tck/AtomicLongArrayTest.java
index b312388..c271a06 100644
--- a/ojluni/src/test/java/util/concurrent/tck/AtomicLongArrayTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/AtomicLongArrayTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import java.util.Arrays;
import java.util.concurrent.atomic.AtomicLongArray;
diff --git a/ojluni/src/test/java/util/concurrent/tck/AtomicLongFieldUpdaterTest.java b/ojluni/src/test/java/util/concurrent/tck/AtomicLongFieldUpdaterTest.java
index b9dc101..70f0bb9 100644
--- a/ojluni/src/test/java/util/concurrent/tck/AtomicLongFieldUpdaterTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/AtomicLongFieldUpdaterTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import java.util.concurrent.atomic.AtomicLongFieldUpdater;
import junit.framework.Test;
diff --git a/ojluni/src/test/java/util/concurrent/tck/AtomicLongTest.java b/ojluni/src/test/java/util/concurrent/tck/AtomicLongTest.java
index f5191af..5b65757 100644
--- a/ojluni/src/test/java/util/concurrent/tck/AtomicLongTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/AtomicLongTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import java.util.concurrent.atomic.AtomicLong;
import junit.framework.Test;
diff --git a/ojluni/src/test/java/util/concurrent/tck/AtomicMarkableReferenceTest.java b/ojluni/src/test/java/util/concurrent/tck/AtomicMarkableReferenceTest.java
index b1c77c4..8fc0369 100644
--- a/ojluni/src/test/java/util/concurrent/tck/AtomicMarkableReferenceTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/AtomicMarkableReferenceTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import java.util.concurrent.atomic.AtomicMarkableReference;
import junit.framework.Test;
diff --git a/ojluni/src/test/java/util/concurrent/tck/AtomicReference9Test.java b/ojluni/src/test/java/util/concurrent/tck/AtomicReference9Test.java
deleted file mode 100644
index f864209..0000000
--- a/ojluni/src/test/java/util/concurrent/tck/AtomicReference9Test.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file:
- *
- * Written by Doug Lea with assistance from members of JCP JSR-166
- * Expert Group and released to the public domain, as explained at
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-import java.util.concurrent.atomic.AtomicReference;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class AtomicReference9Test extends JSR166TestCase {
- public static void main(String[] args) {
- main(suite(), args);
- }
- public static Test suite() {
- return new TestSuite(AtomicReference9Test.class);
- }
-
- /**
- * getPlain returns the last value set
- */
- public void testGetPlainSet() {
- AtomicReference<Integer> ai = new AtomicReference<>(one);
- assertEquals(one, ai.getPlain());
- ai.set(two);
- assertEquals(two, ai.getPlain());
- ai.set(m3);
- assertEquals(m3, ai.getPlain());
- }
-
- /**
- * getOpaque returns the last value set
- */
- public void testGetOpaqueSet() {
- AtomicReference<Integer> ai = new AtomicReference<>(one);
- assertEquals(one, ai.getOpaque());
- ai.set(two);
- assertEquals(two, ai.getOpaque());
- ai.set(m3);
- assertEquals(m3, ai.getOpaque());
- }
-
- /**
- * getAcquire returns the last value set
- */
- public void testGetAcquireSet() {
- AtomicReference<Integer> ai = new AtomicReference<>(one);
- assertEquals(one, ai.getAcquire());
- ai.set(two);
- assertEquals(two, ai.getAcquire());
- ai.set(m3);
- assertEquals(m3, ai.getAcquire());
- }
-
- /**
- * get returns the last value setPlain
- */
- public void testGetSetPlain() {
- AtomicReference<Integer> ai = new AtomicReference<>(one);
- assertEquals(one, ai.get());
- ai.setPlain(two);
- assertEquals(two, ai.get());
- ai.setPlain(m3);
- assertEquals(m3, ai.get());
- }
-
- /**
- * get returns the last value setOpaque
- */
- public void testGetSetOpaque() {
- AtomicReference<Integer> ai = new AtomicReference<>(one);
- assertEquals(one, ai.get());
- ai.setOpaque(two);
- assertEquals(two, ai.get());
- ai.setOpaque(m3);
- assertEquals(m3, ai.get());
- }
-
- /**
- * get returns the last value setRelease
- */
- public void testGetSetRelease() {
- AtomicReference<Integer> ai = new AtomicReference<>(one);
- assertEquals(one, ai.get());
- ai.setRelease(two);
- assertEquals(two, ai.get());
- ai.setRelease(m3);
- assertEquals(m3, ai.get());
- }
-
- /**
- * compareAndExchange succeeds in changing value if equal to
- * expected else fails
- */
- public void testCompareAndExchange() {
- AtomicReference<Integer> ai = new AtomicReference<>(one);
- assertEquals(one, ai.compareAndExchange(one, two));
- assertEquals(two, ai.compareAndExchange(two, m4));
- assertEquals(m4, ai.get());
- assertEquals(m4, ai.compareAndExchange(m5, seven));
- assertEquals(m4, ai.get());
- assertEquals(m4, ai.compareAndExchange(m4, seven));
- assertEquals(seven, ai.get());
- }
-
- /**
- * compareAndExchangeAcquire succeeds in changing value if equal to
- * expected else fails
- */
- public void testCompareAndExchangeAcquire() {
- AtomicReference<Integer> ai = new AtomicReference<>(one);
- assertEquals(one, ai.compareAndExchangeAcquire(one, two));
- assertEquals(two, ai.compareAndExchangeAcquire(two, m4));
- assertEquals(m4, ai.get());
- assertEquals(m4, ai.compareAndExchangeAcquire(m5, seven));
- assertEquals(m4, ai.get());
- assertEquals(m4, ai.compareAndExchangeAcquire(m4, seven));
- assertEquals(seven, ai.get());
- }
-
- /**
- * compareAndExchangeRelease succeeds in changing value if equal to
- * expected else fails
- */
- public void testCompareAndExchangeRelease() {
- AtomicReference<Integer> ai = new AtomicReference<>(one);
- assertEquals(one, ai.compareAndExchangeRelease(one, two));
- assertEquals(two, ai.compareAndExchangeRelease(two, m4));
- assertEquals(m4, ai.get());
- assertEquals(m4, ai.compareAndExchangeRelease(m5, seven));
- assertEquals(m4, ai.get());
- assertEquals(m4, ai.compareAndExchangeRelease(m4, seven));
- assertEquals(seven, ai.get());
- }
-
- /**
- * repeated weakCompareAndSetPlain succeeds in changing value when equal
- * to expected
- */
- public void testWeakCompareAndSetPlain() {
- AtomicReference<Integer> ai = new AtomicReference<>(one);
- do {} while (!ai.weakCompareAndSetPlain(one, two));
- do {} while (!ai.weakCompareAndSetPlain(two, m4));
- assertEquals(m4, ai.get());
- do {} while (!ai.weakCompareAndSetPlain(m4, seven));
- assertEquals(seven, ai.get());
- }
-
- /**
- * repeated weakCompareAndSetVolatile succeeds in changing value when equal
- * to expected
- */
- public void testWeakCompareAndSetVolatile() {
- AtomicReference<Integer> ai = new AtomicReference<>(one);
- do {} while (!ai.weakCompareAndSetVolatile(one, two));
- do {} while (!ai.weakCompareAndSetVolatile(two, m4));
- assertEquals(m4, ai.get());
- do {} while (!ai.weakCompareAndSetVolatile(m4, seven));
- assertEquals(seven, ai.get());
- }
-
- /**
- * repeated weakCompareAndSetAcquire succeeds in changing value when equal
- * to expected
- */
- public void testWeakCompareAndSetAcquire() {
- AtomicReference<Integer> ai = new AtomicReference<>(one);
- do {} while (!ai.weakCompareAndSetAcquire(one, two));
- do {} while (!ai.weakCompareAndSetAcquire(two, m4));
- assertEquals(m4, ai.get());
- do {} while (!ai.weakCompareAndSetAcquire(m4, seven));
- assertEquals(seven, ai.get());
- }
-
- /**
- * repeated weakCompareAndSetRelease succeeds in changing value when equal
- * to expected
- */
- public void testWeakCompareAndSetRelease() {
- AtomicReference<Integer> ai = new AtomicReference<>(one);
- do {} while (!ai.weakCompareAndSetRelease(one, two));
- do {} while (!ai.weakCompareAndSetRelease(two, m4));
- assertEquals(m4, ai.get());
- do {} while (!ai.weakCompareAndSetRelease(m4, seven));
- assertEquals(seven, ai.get());
- }
-
-}
diff --git a/ojluni/src/test/java/util/concurrent/tck/AtomicReferenceArray9Test.java b/ojluni/src/test/java/util/concurrent/tck/AtomicReferenceArray9Test.java
deleted file mode 100644
index f67c3cd..0000000
--- a/ojluni/src/test/java/util/concurrent/tck/AtomicReferenceArray9Test.java
+++ /dev/null
@@ -1,282 +0,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file:
- *
- * Written by Doug Lea with assistance from members of JCP JSR-166
- * Expert Group and released to the public domain, as explained at
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-import java.util.concurrent.atomic.AtomicReferenceArray;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class AtomicReferenceArray9Test extends JSR166TestCase {
- public static void main(String[] args) {
- main(suite(), args);
- }
- public static Test suite() {
- return new TestSuite(AtomicReferenceArray9Test.class);
- }
-
- /**
- * get and set for out of bound indices throw IndexOutOfBoundsException
- */
- public void testIndexing() {
- AtomicReferenceArray<Integer> aa = new AtomicReferenceArray<>(SIZE);
- for (int index : new int[] { -1, SIZE }) {
- final int j = index;
- final Runnable[] tasks = {
- () -> aa.getPlain(j),
- () -> aa.getOpaque(j),
- () -> aa.getAcquire(j),
- () -> aa.setPlain(j, null),
- () -> aa.setOpaque(j, null),
- () -> aa.setRelease(j, null),
- () -> aa.compareAndExchange(j, null, null),
- () -> aa.compareAndExchangeAcquire(j, null, null),
- () -> aa.compareAndExchangeRelease(j, null, null),
- () -> aa.weakCompareAndSetPlain(j, null, null),
- () -> aa.weakCompareAndSetVolatile(j, null, null),
- () -> aa.weakCompareAndSetAcquire(j, null, null),
- () -> aa.weakCompareAndSetRelease(j, null, null),
- };
-
- assertThrows(IndexOutOfBoundsException.class, tasks);
- }
- }
-
- /**
- * getPlain returns the last value set
- */
- public void testGetPlainSet() {
- AtomicReferenceArray<Integer> aa = new AtomicReferenceArray<>(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.set(i, one);
- assertEquals(one, aa.getPlain(i));
- aa.set(i, two);
- assertEquals(two, aa.getPlain(i));
- aa.set(i, m3);
- assertEquals(m3, aa.getPlain(i));
- }
- }
-
- /**
- * getOpaque returns the last value set
- */
- public void testGetOpaqueSet() {
- AtomicReferenceArray<Integer> aa = new AtomicReferenceArray<>(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.set(i, one);
- assertEquals(one, aa.getOpaque(i));
- aa.set(i, two);
- assertEquals(two, aa.getOpaque(i));
- aa.set(i, m3);
- assertEquals(m3, aa.getOpaque(i));
- }
- }
-
- /**
- * getAcquire returns the last value set
- */
- public void testGetAcquireSet() {
- AtomicReferenceArray<Integer> aa = new AtomicReferenceArray<>(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.set(i, one);
- assertEquals(one, aa.getAcquire(i));
- aa.set(i, two);
- assertEquals(two, aa.getAcquire(i));
- aa.set(i, m3);
- assertEquals(m3, aa.getAcquire(i));
- }
- }
-
- /**
- * get returns the last value setPlain
- */
- public void testGetSetPlain() {
- AtomicReferenceArray<Integer> aa = new AtomicReferenceArray<>(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.setPlain(i, one);
- assertEquals(one, aa.get(i));
- aa.setPlain(i, two);
- assertEquals(two, aa.get(i));
- aa.setPlain(i, m3);
- assertEquals(m3, aa.get(i));
- }
- }
-
- /**
- * get returns the last value setOpaque
- */
- public void testGetSetOpaque() {
- AtomicReferenceArray<Integer> aa = new AtomicReferenceArray<>(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.setOpaque(i, one);
- assertEquals(one, aa.get(i));
- aa.setOpaque(i, two);
- assertEquals(two, aa.get(i));
- aa.setOpaque(i, m3);
- assertEquals(m3, aa.get(i));
- }
- }
-
- /**
- * get returns the last value setRelease
- */
- public void testGetSetRelease() {
- AtomicReferenceArray<Integer> aa = new AtomicReferenceArray<>(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.setRelease(i, one);
- assertEquals(one, aa.get(i));
- aa.setRelease(i, two);
- assertEquals(two, aa.get(i));
- aa.setRelease(i, m3);
- assertEquals(m3, aa.get(i));
- }
- }
-
- /**
- * compareAndExchange succeeds in changing value if equal to
- * expected else fails
- */
- public void testCompareAndExchange() {
- AtomicReferenceArray<Integer> aa = new AtomicReferenceArray<>(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.set(i, one);
- assertEquals(one, aa.compareAndExchange(i, one, two));
- assertEquals(two, aa.compareAndExchange(i, two, m4));
- assertEquals(m4, aa.get(i));
- assertEquals(m4, aa.compareAndExchange(i,m5, seven));
- assertEquals(m4, aa.get(i));
- assertEquals(m4, aa.compareAndExchange(i, m4, seven));
- assertEquals(seven, aa.get(i));
- }
- }
-
- /**
- * compareAndExchangeAcquire succeeds in changing value if equal to
- * expected else fails
- */
- public void testCompareAndExchangeAcquire() {
- AtomicReferenceArray<Integer> aa = new AtomicReferenceArray<>(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.set(i, one);
- assertEquals(one, aa.compareAndExchangeAcquire(i, one, two));
- assertEquals(two, aa.compareAndExchangeAcquire(i, two, m4));
- assertEquals(m4, aa.get(i));
- assertEquals(m4, aa.compareAndExchangeAcquire(i,m5, seven));
- assertEquals(m4, aa.get(i));
- assertEquals(m4, aa.compareAndExchangeAcquire(i, m4, seven));
- assertEquals(seven, aa.get(i));
- }
- }
-
- /**
- * compareAndExchangeRelease succeeds in changing value if equal to
- * expected else fails
- */
- public void testCompareAndExchangeRelease() {
- AtomicReferenceArray<Integer> aa = new AtomicReferenceArray<>(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.set(i, one);
- assertEquals(one, aa.compareAndExchangeRelease(i, one, two));
- assertEquals(two, aa.compareAndExchangeRelease(i, two, m4));
- assertEquals(m4, aa.get(i));
- assertEquals(m4, aa.compareAndExchangeRelease(i,m5, seven));
- assertEquals(m4, aa.get(i));
- assertEquals(m4, aa.compareAndExchangeRelease(i, m4, seven));
- assertEquals(seven, aa.get(i));
- }
- }
-
- /**
- * repeated weakCompareAndSetPlain succeeds in changing value when equal
- * to expected
- */
- public void testWeakCompareAndSetPlain() {
- AtomicReferenceArray<Integer> aa = new AtomicReferenceArray<>(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.set(i, one);
- do {} while (!aa.weakCompareAndSetPlain(i, one, two));
- do {} while (!aa.weakCompareAndSetPlain(i, two, m4));
- assertEquals(m4, aa.get(i));
- do {} while (!aa.weakCompareAndSetPlain(i, m4, seven));
- assertEquals(seven, aa.get(i));
- }
- }
-
- /**
- * repeated weakCompareAndSetVolatile succeeds in changing value when equal
- * to expected
- */
- public void testWeakCompareAndSetVolatile() {
- AtomicReferenceArray<Integer> aa = new AtomicReferenceArray<>(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.set(i, one);
- do {} while (!aa.weakCompareAndSetVolatile(i, one, two));
- do {} while (!aa.weakCompareAndSetVolatile(i, two, m4));
- assertEquals(m4, aa.get(i));
- do {} while (!aa.weakCompareAndSetVolatile(i, m4, seven));
- assertEquals(seven, aa.get(i));
- }
- }
-
- /**
- * repeated weakCompareAndSetAcquire succeeds in changing value when equal
- * to expected
- */
- public void testWeakCompareAndSetAcquire() {
- AtomicReferenceArray<Integer> aa = new AtomicReferenceArray<>(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.set(i, one);
- do {} while (!aa.weakCompareAndSetAcquire(i, one, two));
- do {} while (!aa.weakCompareAndSetAcquire(i, two, m4));
- assertEquals(m4, aa.get(i));
- do {} while (!aa.weakCompareAndSetAcquire(i, m4, seven));
- assertEquals(seven, aa.get(i));
- }
- }
-
- /**
- * repeated weakCompareAndSetRelease succeeds in changing value when equal
- * to expected
- */
- public void testWeakCompareAndSetRelease() {
- AtomicReferenceArray<Integer> aa = new AtomicReferenceArray<>(SIZE);
- for (int i = 0; i < SIZE; i++) {
- aa.set(i, one);
- do {} while (!aa.weakCompareAndSetRelease(i, one, two));
- do {} while (!aa.weakCompareAndSetRelease(i, two, m4));
- assertEquals(m4, aa.get(i));
- do {} while (!aa.weakCompareAndSetRelease(i, m4, seven));
- assertEquals(seven, aa.get(i));
- }
- }
-
-}
diff --git a/ojluni/src/test/java/util/concurrent/tck/AtomicReferenceArrayTest.java b/ojluni/src/test/java/util/concurrent/tck/AtomicReferenceArrayTest.java
index 019446c..6e078f8 100644
--- a/ojluni/src/test/java/util/concurrent/tck/AtomicReferenceArrayTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/AtomicReferenceArrayTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import java.util.Arrays;
import java.util.concurrent.atomic.AtomicReferenceArray;
diff --git a/ojluni/src/test/java/util/concurrent/tck/AtomicReferenceFieldUpdaterTest.java b/ojluni/src/test/java/util/concurrent/tck/AtomicReferenceFieldUpdaterTest.java
index fb50658..2517842 100644
--- a/ojluni/src/test/java/util/concurrent/tck/AtomicReferenceFieldUpdaterTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/AtomicReferenceFieldUpdaterTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
import junit.framework.Test;
diff --git a/ojluni/src/test/java/util/concurrent/tck/AtomicReferenceTest.java b/ojluni/src/test/java/util/concurrent/tck/AtomicReferenceTest.java
index 6242374..1c5e303 100644
--- a/ojluni/src/test/java/util/concurrent/tck/AtomicReferenceTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/AtomicReferenceTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import java.util.concurrent.atomic.AtomicReference;
import junit.framework.Test;
diff --git a/ojluni/src/test/java/util/concurrent/tck/AtomicStampedReferenceTest.java b/ojluni/src/test/java/util/concurrent/tck/AtomicStampedReferenceTest.java
index 1a35213..244bfed 100644
--- a/ojluni/src/test/java/util/concurrent/tck/AtomicStampedReferenceTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/AtomicStampedReferenceTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import java.util.concurrent.atomic.AtomicStampedReference;
import junit.framework.Test;
diff --git a/ojluni/src/test/java/util/concurrent/tck/BlockingQueueTest.java b/ojluni/src/test/java/util/concurrent/tck/BlockingQueueTest.java
index aa38b3b..6aab850 100644
--- a/ojluni/src/test/java/util/concurrent/tck/BlockingQueueTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/BlockingQueueTest.java
@@ -34,6 +34,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import java.util.ArrayList;
diff --git a/ojluni/src/test/java/util/concurrent/tck/Collection8Test.java b/ojluni/src/test/java/util/concurrent/tck/Collection8Test.java
index e25f1dd..d95bbe3 100644
--- a/ojluni/src/test/java/util/concurrent/tck/Collection8Test.java
+++ b/ojluni/src/test/java/util/concurrent/tck/Collection8Test.java
@@ -32,6 +32,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.HOURS;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
@@ -69,7 +70,9 @@
* Contains tests applicable to all jdk8+ Collection implementations.
* An extension of CollectionTest.
*/
-public class Collection8Test extends JSR166TestCase {
+// Android-changed: Mark this abstract to prevent scanned by the JUnit directly. http://b/181312360
+// public class Collection8Test extends JSR166TestCase {
+public abstract class Collection8Test extends JSR166TestCase {
final CollectionImplementation impl;
/** Tests are parameterized by a Collection implementation. */
@@ -78,8 +81,19 @@
this.impl = impl;
}
+ // BEGIN Android-added: Mark Collection8Test abstract. http://b/181312360
+ static class AndroidCollection8Test extends Collection8Test {
+
+ AndroidCollection8Test(CollectionImplementation impl, String methodName) {
+ super(impl, methodName);
+ }
+ }
+ // END Android-added: Mark Collection8Test abstract. http://b/181312360
+
public static Test testSuite(CollectionImplementation impl) {
- return parameterizedTestSuite(Collection8Test.class,
+ // Android-changed: Prevent scanned by the JUnit directly. http://b/181312360
+ // return parameterizedTestSuite(Collection8Test.class,
+ return parameterizedTestSuite(AndroidCollection8Test.class,
CollectionImplementation.class,
impl);
}
diff --git a/ojluni/src/test/java/util/concurrent/tck/CollectionImplementation.java b/ojluni/src/test/java/util/concurrent/tck/CollectionImplementation.java
index 54ffb7c..fc3b3be 100644
--- a/ojluni/src/test/java/util/concurrent/tck/CollectionImplementation.java
+++ b/ojluni/src/test/java/util/concurrent/tck/CollectionImplementation.java
@@ -32,6 +32,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import java.util.Collection;
/** Allows tests to work with different Collection implementations. */
diff --git a/ojluni/src/test/java/util/concurrent/tck/CollectionTest.java b/ojluni/src/test/java/util/concurrent/tck/CollectionTest.java
index 8ec2014..2f3943a 100644
--- a/ojluni/src/test/java/util/concurrent/tck/CollectionTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/CollectionTest.java
@@ -32,6 +32,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import junit.framework.Test;
/**
diff --git a/ojluni/src/test/java/util/concurrent/tck/CompletableFutureTest.java b/ojluni/src/test/java/util/concurrent/tck/CompletableFutureTest.java
index 6def2ff..e97a0ab 100644
--- a/ojluni/src/test/java/util/concurrent/tck/CompletableFutureTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/CompletableFutureTest.java
@@ -32,6 +32,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static java.util.concurrent.TimeUnit.SECONDS;
import static java.util.concurrent.CompletableFuture.completedFuture;
diff --git a/ojluni/src/test/java/util/concurrent/tck/ConcurrentHashMap8Test.java b/ojluni/src/test/java/util/concurrent/tck/ConcurrentHashMap8Test.java
index 00f8dc6..324a5ef 100644
--- a/ojluni/src/test/java/util/concurrent/tck/ConcurrentHashMap8Test.java
+++ b/ojluni/src/test/java/util/concurrent/tck/ConcurrentHashMap8Test.java
@@ -31,6 +31,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import static java.util.Spliterator.CONCURRENT;
import static java.util.Spliterator.DISTINCT;
import static java.util.Spliterator.NONNULL;
@@ -323,7 +324,8 @@
*/
public void testGetMappedValue() {
ConcurrentHashMap map = map5();
- assertNull(map.keySet().getMappedValue());
+ // Android-changed: ConcurrentHashMap.keySet() has 2 return type variants on Android.
+ assertNull(((ConcurrentHashMap.KeySetView)map.keySet()).getMappedValue());
try {
map.keySet(null);
shouldThrow();
diff --git a/ojluni/src/test/java/util/concurrent/tck/ConcurrentHashMapTest.java b/ojluni/src/test/java/util/concurrent/tck/ConcurrentHashMapTest.java
index 1485d2c..3973eda 100644
--- a/ojluni/src/test/java/util/concurrent/tck/ConcurrentHashMapTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/ConcurrentHashMapTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
diff --git a/ojluni/src/test/java/util/concurrent/tck/ConcurrentLinkedDequeTest.java b/ojluni/src/test/java/util/concurrent/tck/ConcurrentLinkedDequeTest.java
index aac0bb7..90dbc71 100644
--- a/ojluni/src/test/java/util/concurrent/tck/ConcurrentLinkedDequeTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/ConcurrentLinkedDequeTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import java.util.Arrays;
import java.util.Collection;
import java.util.Deque;
diff --git a/ojluni/src/test/java/util/concurrent/tck/ConcurrentLinkedQueueTest.java b/ojluni/src/test/java/util/concurrent/tck/ConcurrentLinkedQueueTest.java
index 57689cc..1d1e875 100644
--- a/ojluni/src/test/java/util/concurrent/tck/ConcurrentLinkedQueueTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/ConcurrentLinkedQueueTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
diff --git a/ojluni/src/test/java/util/concurrent/tck/ConcurrentSkipListMapTest.java b/ojluni/src/test/java/util/concurrent/tck/ConcurrentSkipListMapTest.java
index 0b1faad..7e8594d 100644
--- a/ojluni/src/test/java/util/concurrent/tck/ConcurrentSkipListMapTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/ConcurrentSkipListMapTest.java
@@ -31,6 +31,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.BitSet;
diff --git a/ojluni/src/test/java/util/concurrent/tck/ConcurrentSkipListSetTest.java b/ojluni/src/test/java/util/concurrent/tck/ConcurrentSkipListSetTest.java
index ae91219..d27c10f 100644
--- a/ojluni/src/test/java/util/concurrent/tck/ConcurrentSkipListSetTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/ConcurrentSkipListSetTest.java
@@ -31,6 +31,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import java.util.Arrays;
import java.util.BitSet;
import java.util.Collection;
diff --git a/ojluni/src/test/java/util/concurrent/tck/ConcurrentSkipListSubMapTest.java b/ojluni/src/test/java/util/concurrent/tck/ConcurrentSkipListSubMapTest.java
index ddc82f7..d48b9f9 100644
--- a/ojluni/src/test/java/util/concurrent/tck/ConcurrentSkipListSubMapTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/ConcurrentSkipListSubMapTest.java
@@ -31,6 +31,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
diff --git a/ojluni/src/test/java/util/concurrent/tck/ConcurrentSkipListSubSetTest.java b/ojluni/src/test/java/util/concurrent/tck/ConcurrentSkipListSubSetTest.java
index 4b299e7..042fc62 100644
--- a/ojluni/src/test/java/util/concurrent/tck/ConcurrentSkipListSubSetTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/ConcurrentSkipListSubSetTest.java
@@ -31,6 +31,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Iterator;
diff --git a/ojluni/src/test/java/util/concurrent/tck/CopyOnWriteArrayListTest.java b/ojluni/src/test/java/util/concurrent/tck/CopyOnWriteArrayListTest.java
index 329010b..70409c3 100644
--- a/ojluni/src/test/java/util/concurrent/tck/CopyOnWriteArrayListTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/CopyOnWriteArrayListTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
diff --git a/ojluni/src/test/java/util/concurrent/tck/CopyOnWriteArraySetTest.java b/ojluni/src/test/java/util/concurrent/tck/CopyOnWriteArraySetTest.java
index 2595589..d7fea36 100644
--- a/ojluni/src/test/java/util/concurrent/tck/CopyOnWriteArraySetTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/CopyOnWriteArraySetTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
diff --git a/ojluni/src/test/java/util/concurrent/tck/CountDownLatchTest.java b/ojluni/src/test/java/util/concurrent/tck/CountDownLatchTest.java
index e286d00..e9ab578 100644
--- a/ojluni/src/test/java/util/concurrent/tck/CountDownLatchTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/CountDownLatchTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import java.util.concurrent.CountDownLatch;
diff --git a/ojluni/src/test/java/util/concurrent/tck/CountedCompleter8Test.java b/ojluni/src/test/java/util/concurrent/tck/CountedCompleter8Test.java
index eb23564..663c2b5 100644
--- a/ojluni/src/test/java/util/concurrent/tck/CountedCompleter8Test.java
+++ b/ojluni/src/test/java/util/concurrent/tck/CountedCompleter8Test.java
@@ -32,6 +32,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static java.util.concurrent.TimeUnit.SECONDS;
diff --git a/ojluni/src/test/java/util/concurrent/tck/CountedCompleterTest.java b/ojluni/src/test/java/util/concurrent/tck/CountedCompleterTest.java
index 3113b57..241ca03 100644
--- a/ojluni/src/test/java/util/concurrent/tck/CountedCompleterTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/CountedCompleterTest.java
@@ -31,6 +31,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static java.util.concurrent.TimeUnit.SECONDS;
diff --git a/ojluni/src/test/java/util/concurrent/tck/CyclicBarrierTest.java b/ojluni/src/test/java/util/concurrent/tck/CyclicBarrierTest.java
index 8db1063..08258c6 100644
--- a/ojluni/src/test/java/util/concurrent/tck/CyclicBarrierTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/CyclicBarrierTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import java.util.concurrent.BrokenBarrierException;
diff --git a/ojluni/src/test/java/util/concurrent/tck/DelayQueueTest.java b/ojluni/src/test/java/util/concurrent/tck/DelayQueueTest.java
index 5711d32..dfaf2d0 100644
--- a/ojluni/src/test/java/util/concurrent/tck/DelayQueueTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/DelayQueueTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import java.util.ArrayList;
diff --git a/ojluni/src/test/java/util/concurrent/tck/DoubleAccumulatorTest.java b/ojluni/src/test/java/util/concurrent/tck/DoubleAccumulatorTest.java
index 0a7fea9..ef42b44 100644
--- a/ojluni/src/test/java/util/concurrent/tck/DoubleAccumulatorTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/DoubleAccumulatorTest.java
@@ -31,6 +31,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import java.util.concurrent.Executors;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Phaser;
diff --git a/ojluni/src/test/java/util/concurrent/tck/DoubleAdderTest.java b/ojluni/src/test/java/util/concurrent/tck/DoubleAdderTest.java
index fc7d1f4..dd89b56 100644
--- a/ojluni/src/test/java/util/concurrent/tck/DoubleAdderTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/DoubleAdderTest.java
@@ -31,6 +31,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import java.util.concurrent.CyclicBarrier;
import java.util.concurrent.Executors;
import java.util.concurrent.ExecutorService;
diff --git a/ojluni/src/test/java/util/concurrent/tck/EntryTest.java b/ojluni/src/test/java/util/concurrent/tck/EntryTest.java
index dcd696d..c98541d 100644
--- a/ojluni/src/test/java/util/concurrent/tck/EntryTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/EntryTest.java
@@ -31,6 +31,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import java.util.AbstractMap;
import java.util.Map;
diff --git a/ojluni/src/test/java/util/concurrent/tck/ExchangerTest.java b/ojluni/src/test/java/util/concurrent/tck/ExchangerTest.java
index ba6c544..95acafb 100644
--- a/ojluni/src/test/java/util/concurrent/tck/ExchangerTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/ExchangerTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import java.util.concurrent.CountDownLatch;
diff --git a/ojluni/src/test/java/util/concurrent/tck/ExecutorCompletionService9Test.java b/ojluni/src/test/java/util/concurrent/tck/ExecutorCompletionService9Test.java
index 4ca78a0..1af24cf 100644
--- a/ojluni/src/test/java/util/concurrent/tck/ExecutorCompletionService9Test.java
+++ b/ojluni/src/test/java/util/concurrent/tck/ExecutorCompletionService9Test.java
@@ -32,6 +32,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Comparator;
diff --git a/ojluni/src/test/java/util/concurrent/tck/ExecutorCompletionServiceTest.java b/ojluni/src/test/java/util/concurrent/tck/ExecutorCompletionServiceTest.java
index 0ab6084..877031e 100644
--- a/ojluni/src/test/java/util/concurrent/tck/ExecutorCompletionServiceTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/ExecutorCompletionServiceTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import java.util.concurrent.ArrayBlockingQueue;
diff --git a/ojluni/src/test/java/util/concurrent/tck/ExecutorsTest.java b/ojluni/src/test/java/util/concurrent/tck/ExecutorsTest.java
index 441a52a..fd4b7e4 100644
--- a/ojluni/src/test/java/util/concurrent/tck/ExecutorsTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/ExecutorsTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import java.security.AccessControlContext;
@@ -381,7 +382,8 @@
String name = current.getName();
assertTrue(name.endsWith("thread-1"));
assertSame(thisccl, current.getContextClassLoader());
- assertEquals(thisacc, AccessController.getContext());
+ // Android-removed: Android doesn't support real AccessControlContext.
+ // assertEquals(thisacc, AccessController.getCossntext());
done.countDown();
}};
ExecutorService e = Executors.newSingleThreadExecutor(Executors.privilegedThreadFactory());
diff --git a/ojluni/src/test/java/util/concurrent/tck/ForkJoinPool8Test.java b/ojluni/src/test/java/util/concurrent/tck/ForkJoinPool8Test.java
index b0fea9a..a39fc71 100644
--- a/ojluni/src/test/java/util/concurrent/tck/ForkJoinPool8Test.java
+++ b/ojluni/src/test/java/util/concurrent/tck/ForkJoinPool8Test.java
@@ -31,6 +31,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static java.util.concurrent.TimeUnit.SECONDS;
diff --git a/ojluni/src/test/java/util/concurrent/tck/ForkJoinPool9Test.java b/ojluni/src/test/java/util/concurrent/tck/ForkJoinPool9Test.java
deleted file mode 100644
index 8a87e47..0000000
--- a/ojluni/src/test/java/util/concurrent/tck/ForkJoinPool9Test.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file:
- *
- * Written by Doug Lea and Martin Buchholz with assistance from
- * members of JCP JSR-166 Expert Group and released to the public
- * domain, as explained at
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-import static java.util.concurrent.TimeUnit.MILLISECONDS;
-
-import java.lang.invoke.MethodHandles;
-import java.lang.invoke.VarHandle;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.ForkJoinPool;
-import java.util.concurrent.ForkJoinTask;
-import java.util.concurrent.Future;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class ForkJoinPool9Test extends JSR166TestCase {
- public static void main(String[] args) {
- main(suite(), args);
- }
-
- public static Test suite() {
- return new TestSuite(ForkJoinPool9Test.class);
- }
-
- /**
- * Check handling of common pool thread context class loader
- */
- public void testCommonPoolThreadContextClassLoader() throws Throwable {
- if (!testImplementationDetails) return;
-
- // Ensure common pool has at least one real thread
- String prop = System.getProperty(
- "java.util.concurrent.ForkJoinPool.common.parallelism");
- if ("0".equals(prop)) return;
-
- VarHandle CCL =
- MethodHandles.privateLookupIn(Thread.class, MethodHandles.lookup())
- .findVarHandle(Thread.class, "contextClassLoader", ClassLoader.class);
- ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader();
- boolean haveSecurityManager = (System.getSecurityManager() != null);
- CountDownLatch taskStarted = new CountDownLatch(1);
- Runnable runInCommonPool = () -> {
- taskStarted.countDown();
- assertTrue(ForkJoinTask.inForkJoinPool());
- assertSame(ForkJoinPool.commonPool(),
- ForkJoinTask.getPool());
- assertSame(systemClassLoader,
- Thread.currentThread().getContextClassLoader());
- assertSame(systemClassLoader,
- CCL.get(Thread.currentThread()));
- if (haveSecurityManager)
- assertThrows(
- SecurityException.class,
- () -> System.getProperty("foo"),
- () -> Thread.currentThread().setContextClassLoader(null));
- // TODO ?
-// if (haveSecurityManager
-// && Thread.currentThread().getClass().getSimpleName()
-// .equals("InnocuousForkJoinWorkerThread"))
-// assertThrows(SecurityException.class, /* ?? */);
- };
- Future<?> f = ForkJoinPool.commonPool().submit(runInCommonPool);
- // Ensure runInCommonPool is truly running in the common pool,
- // by giving this thread no opportunity to "help" on get().
- assertTrue(taskStarted.await(LONG_DELAY_MS, MILLISECONDS));
- assertNull(f.get());
- }
-
-}
diff --git a/ojluni/src/test/java/util/concurrent/tck/ForkJoinPoolTest.java b/ojluni/src/test/java/util/concurrent/tck/ForkJoinPoolTest.java
index bf5a365..d8ad1dd 100644
--- a/ojluni/src/test/java/util/concurrent/tck/ForkJoinPoolTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/ForkJoinPoolTest.java
@@ -31,6 +31,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static java.util.concurrent.TimeUnit.NANOSECONDS;
diff --git a/ojluni/src/test/java/util/concurrent/tck/ForkJoinTask8Test.java b/ojluni/src/test/java/util/concurrent/tck/ForkJoinTask8Test.java
index c1063da..bf9d17c 100644
--- a/ojluni/src/test/java/util/concurrent/tck/ForkJoinTask8Test.java
+++ b/ojluni/src/test/java/util/concurrent/tck/ForkJoinTask8Test.java
@@ -31,6 +31,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static java.util.concurrent.TimeUnit.SECONDS;
diff --git a/ojluni/src/test/java/util/concurrent/tck/ForkJoinTaskTest.java b/ojluni/src/test/java/util/concurrent/tck/ForkJoinTaskTest.java
index 807785a..2255fda 100644
--- a/ojluni/src/test/java/util/concurrent/tck/ForkJoinTaskTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/ForkJoinTaskTest.java
@@ -31,6 +31,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static java.util.concurrent.TimeUnit.SECONDS;
diff --git a/ojluni/src/test/java/util/concurrent/tck/FutureTaskTest.java b/ojluni/src/test/java/util/concurrent/tck/FutureTaskTest.java
index 1e858bf..40f0a84 100644
--- a/ojluni/src/test/java/util/concurrent/tck/FutureTaskTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/FutureTaskTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static java.util.concurrent.TimeUnit.NANOSECONDS;
import static java.util.concurrent.TimeUnit.SECONDS;
diff --git a/ojluni/src/test/java/util/concurrent/tck/JSR166TestCase.java b/ojluni/src/test/java/util/concurrent/tck/JSR166TestCase.java
index 1037eb8..575a8f3 100644
--- a/ojluni/src/test/java/util/concurrent/tck/JSR166TestCase.java
+++ b/ojluni/src/test/java/util/concurrent/tck/JSR166TestCase.java
@@ -65,6 +65,7 @@
* JSR166TestCase
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static java.util.concurrent.TimeUnit.MINUTES;
import static java.util.concurrent.TimeUnit.NANOSECONDS;
@@ -73,9 +74,9 @@
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
-import java.lang.management.ManagementFactory;
-import java.lang.management.ThreadInfo;
-import java.lang.management.ThreadMXBean;
+//import java.lang.management.ManagementFactory;
+//import java.lang.management.ThreadInfo;
+//import java.lang.management.ThreadMXBean;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
@@ -1059,6 +1060,8 @@
}
}
+ // Android-removed: Android doesn't have ManagementFactory.
+ /*
ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
System.err.println("------ stacktrace dump start ------");
for (ThreadInfo info : threadMXBean.dumpAllThreads(true, true)) {
@@ -1079,6 +1082,7 @@
System.err.print(info);
}
System.err.println("------ stacktrace dump end ------");
+ */
if (sm != null) System.setSecurityManager(sm);
}
diff --git a/ojluni/src/test/java/util/concurrent/tck/LinkedBlockingDeque8Test.java b/ojluni/src/test/java/util/concurrent/tck/LinkedBlockingDeque8Test.java
index c5d5463..29b2704 100644
--- a/ojluni/src/test/java/util/concurrent/tck/LinkedBlockingDeque8Test.java
+++ b/ojluni/src/test/java/util/concurrent/tck/LinkedBlockingDeque8Test.java
@@ -32,6 +32,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import java.util.concurrent.LinkedBlockingDeque;
import java.util.Spliterator;
@@ -60,7 +61,7 @@
*/
public void testSpliterator_characteristics() {
LinkedBlockingDeque q = new LinkedBlockingDeque();
- Spliterator s = q.spliterator();zz
+ Spliterator s = q.spliterator();
int characteristics = s.characteristics();
int required = Spliterator.CONCURRENT
| Spliterator.NONNULL
diff --git a/ojluni/src/test/java/util/concurrent/tck/LinkedBlockingDequeTest.java b/ojluni/src/test/java/util/concurrent/tck/LinkedBlockingDequeTest.java
index 2559fdf..c8cc4a1 100644
--- a/ojluni/src/test/java/util/concurrent/tck/LinkedBlockingDequeTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/LinkedBlockingDequeTest.java
@@ -31,6 +31,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import java.util.ArrayList;
diff --git a/ojluni/src/test/java/util/concurrent/tck/LinkedBlockingQueue8Test.java b/ojluni/src/test/java/util/concurrent/tck/LinkedBlockingQueue8Test.java
index 9900c33..4a6e42a 100644
--- a/ojluni/src/test/java/util/concurrent/tck/LinkedBlockingQueue8Test.java
+++ b/ojluni/src/test/java/util/concurrent/tck/LinkedBlockingQueue8Test.java
@@ -32,6 +32,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.Spliterator;
diff --git a/ojluni/src/test/java/util/concurrent/tck/LinkedBlockingQueueTest.java b/ojluni/src/test/java/util/concurrent/tck/LinkedBlockingQueueTest.java
index 153cbce..4580f86 100644
--- a/ojluni/src/test/java/util/concurrent/tck/LinkedBlockingQueueTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/LinkedBlockingQueueTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import java.util.ArrayList;
diff --git a/ojluni/src/test/java/util/concurrent/tck/LinkedListTest.java b/ojluni/src/test/java/util/concurrent/tck/LinkedListTest.java
index 08a2ddd..b0afd4f 100644
--- a/ojluni/src/test/java/util/concurrent/tck/LinkedListTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/LinkedListTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
diff --git a/ojluni/src/test/java/util/concurrent/tck/LinkedTransferQueueTest.java b/ojluni/src/test/java/util/concurrent/tck/LinkedTransferQueueTest.java
index 6a22b0e..ee53cf9 100644
--- a/ojluni/src/test/java/util/concurrent/tck/LinkedTransferQueueTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/LinkedTransferQueueTest.java
@@ -32,6 +32,7 @@
* Other contributors include John Vint
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import java.util.ArrayList;
diff --git a/ojluni/src/test/java/util/concurrent/tck/LockSupportTest.java b/ojluni/src/test/java/util/concurrent/tck/LockSupportTest.java
index 02175ad..1a31cbd 100644
--- a/ojluni/src/test/java/util/concurrent/tck/LockSupportTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/LockSupportTest.java
@@ -34,6 +34,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import java.util.concurrent.CountDownLatch;
diff --git a/ojluni/src/test/java/util/concurrent/tck/LongAccumulatorTest.java b/ojluni/src/test/java/util/concurrent/tck/LongAccumulatorTest.java
index 6acfd27..36386fc 100644
--- a/ojluni/src/test/java/util/concurrent/tck/LongAccumulatorTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/LongAccumulatorTest.java
@@ -31,6 +31,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import java.util.concurrent.Executors;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Phaser;
diff --git a/ojluni/src/test/java/util/concurrent/tck/LongAdderTest.java b/ojluni/src/test/java/util/concurrent/tck/LongAdderTest.java
index 4f0d5e0..d980185 100644
--- a/ojluni/src/test/java/util/concurrent/tck/LongAdderTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/LongAdderTest.java
@@ -31,6 +31,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import java.util.concurrent.CyclicBarrier;
import java.util.concurrent.Executors;
import java.util.concurrent.ExecutorService;
diff --git a/ojluni/src/test/java/util/concurrent/tck/PhaserTest.java b/ojluni/src/test/java/util/concurrent/tck/PhaserTest.java
index 832fe3c..f6764c8 100644
--- a/ojluni/src/test/java/util/concurrent/tck/PhaserTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/PhaserTest.java
@@ -32,6 +32,7 @@
* Other contributors include John Vint
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import java.util.ArrayList;
diff --git a/ojluni/src/test/java/util/concurrent/tck/PriorityBlockingQueueTest.java b/ojluni/src/test/java/util/concurrent/tck/PriorityBlockingQueueTest.java
index 088c389..9aacce3 100644
--- a/ojluni/src/test/java/util/concurrent/tck/PriorityBlockingQueueTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/PriorityBlockingQueueTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import java.util.ArrayList;
diff --git a/ojluni/src/test/java/util/concurrent/tck/PriorityQueueTest.java b/ojluni/src/test/java/util/concurrent/tck/PriorityQueueTest.java
index c156473..072abac 100644
--- a/ojluni/src/test/java/util/concurrent/tck/PriorityQueueTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/PriorityQueueTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import java.util.Arrays;
import java.util.Collection;
import java.util.Comparator;
diff --git a/ojluni/src/test/java/util/concurrent/tck/RecursiveActionTest.java b/ojluni/src/test/java/util/concurrent/tck/RecursiveActionTest.java
index 01bd927..7ec6cc8 100644
--- a/ojluni/src/test/java/util/concurrent/tck/RecursiveActionTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/RecursiveActionTest.java
@@ -31,6 +31,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.SECONDS;
import java.util.Arrays;
diff --git a/ojluni/src/test/java/util/concurrent/tck/RecursiveTaskTest.java b/ojluni/src/test/java/util/concurrent/tck/RecursiveTaskTest.java
index ce13daa..39b3010 100644
--- a/ojluni/src/test/java/util/concurrent/tck/RecursiveTaskTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/RecursiveTaskTest.java
@@ -31,6 +31,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.SECONDS;
import java.util.HashSet;
diff --git a/ojluni/src/test/java/util/concurrent/tck/ReentrantLockTest.java b/ojluni/src/test/java/util/concurrent/tck/ReentrantLockTest.java
index 9b03217..2e518d3 100644
--- a/ojluni/src/test/java/util/concurrent/tck/ReentrantLockTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/ReentrantLockTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import java.util.Arrays;
diff --git a/ojluni/src/test/java/util/concurrent/tck/ReentrantReadWriteLockTest.java b/ojluni/src/test/java/util/concurrent/tck/ReentrantReadWriteLockTest.java
index 55dc5db..dd2f4f3 100644
--- a/ojluni/src/test/java/util/concurrent/tck/ReentrantReadWriteLockTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/ReentrantReadWriteLockTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import java.util.Arrays;
diff --git a/ojluni/src/test/java/util/concurrent/tck/ScheduledExecutorSubclassTest.java b/ojluni/src/test/java/util/concurrent/tck/ScheduledExecutorSubclassTest.java
index cd50421..d0e4182 100644
--- a/ojluni/src/test/java/util/concurrent/tck/ScheduledExecutorSubclassTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/ScheduledExecutorSubclassTest.java
@@ -31,6 +31,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static java.util.concurrent.TimeUnit.NANOSECONDS;
import static java.util.concurrent.TimeUnit.SECONDS;
diff --git a/ojluni/src/test/java/util/concurrent/tck/ScheduledExecutorTest.java b/ojluni/src/test/java/util/concurrent/tck/ScheduledExecutorTest.java
index 46bb2c3..7f85917 100644
--- a/ojluni/src/test/java/util/concurrent/tck/ScheduledExecutorTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/ScheduledExecutorTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static java.util.concurrent.TimeUnit.NANOSECONDS;
import static java.util.concurrent.TimeUnit.SECONDS;
diff --git a/ojluni/src/test/java/util/concurrent/tck/SemaphoreTest.java b/ojluni/src/test/java/util/concurrent/tck/SemaphoreTest.java
index 0e85d7c..3c0321f 100644
--- a/ojluni/src/test/java/util/concurrent/tck/SemaphoreTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/SemaphoreTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import java.util.Collection;
diff --git a/ojluni/src/test/java/util/concurrent/tck/SplittableRandomTest.java b/ojluni/src/test/java/util/concurrent/tck/SplittableRandomTest.java
index 74baf38..99c4bde 100644
--- a/ojluni/src/test/java/util/concurrent/tck/SplittableRandomTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/SplittableRandomTest.java
@@ -31,6 +31,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import java.util.SplittableRandom;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.LongAdder;
diff --git a/ojluni/src/test/java/util/concurrent/tck/StampedLockTest.java b/ojluni/src/test/java/util/concurrent/tck/StampedLockTest.java
index 65ef48d..5ca2410 100644
--- a/ojluni/src/test/java/util/concurrent/tck/StampedLockTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/StampedLockTest.java
@@ -32,6 +32,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.DAYS;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static java.util.concurrent.TimeUnit.SECONDS;
diff --git a/ojluni/src/test/java/util/concurrent/tck/SubmissionPublisherTest.java b/ojluni/src/test/java/util/concurrent/tck/SubmissionPublisherTest.java
deleted file mode 100644
index 102d1b5..0000000
--- a/ojluni/src/test/java/util/concurrent/tck/SubmissionPublisherTest.java
+++ /dev/null
@@ -1,1009 +0,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file:
- *
- * Written by Doug Lea and Martin Buchholz with assistance from
- * members of JCP JSR-166 Expert Group and released to the public
- * domain, as explained at
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.Executor;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Flow;
-import java.util.concurrent.ForkJoinPool;
-import java.util.concurrent.SubmissionPublisher;
-import java.util.concurrent.atomic.AtomicInteger;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import static java.util.concurrent.Flow.Subscriber;
-import static java.util.concurrent.Flow.Subscription;
-import static java.util.concurrent.TimeUnit.MILLISECONDS;
-
-public class SubmissionPublisherTest extends JSR166TestCase {
-
- public static void main(String[] args) {
- main(suite(), args);
- }
- public static Test suite() {
- return new TestSuite(SubmissionPublisherTest.class);
- }
-
- final Executor basicExecutor = basicPublisher().getExecutor();
-
- static SubmissionPublisher<Integer> basicPublisher() {
- return new SubmissionPublisher<Integer>();
- }
-
- static class SPException extends RuntimeException {}
-
- class TestSubscriber implements Subscriber<Integer> {
- volatile Subscription sn;
- int last; // Requires that onNexts are in numeric order
- volatile int nexts;
- volatile int errors;
- volatile int completes;
- volatile boolean throwOnCall = false;
- volatile boolean request = true;
- volatile Throwable lastError;
-
- public synchronized void onSubscribe(Subscription s) {
- threadAssertTrue(sn == null);
- sn = s;
- notifyAll();
- if (throwOnCall)
- throw new SPException();
- if (request)
- sn.request(1L);
- }
- public synchronized void onNext(Integer t) {
- ++nexts;
- notifyAll();
- int current = t.intValue();
- threadAssertTrue(current >= last);
- last = current;
- if (request)
- sn.request(1L);
- if (throwOnCall)
- throw new SPException();
- }
- public synchronized void onError(Throwable t) {
- threadAssertTrue(completes == 0);
- threadAssertTrue(errors == 0);
- lastError = t;
- ++errors;
- notifyAll();
- }
- public synchronized void onComplete() {
- threadAssertTrue(completes == 0);
- ++completes;
- notifyAll();
- }
-
- synchronized void awaitSubscribe() {
- while (sn == null) {
- try {
- wait();
- } catch (Exception ex) {
- threadUnexpectedException(ex);
- break;
- }
- }
- }
- synchronized void awaitNext(int n) {
- while (nexts < n) {
- try {
- wait();
- } catch (Exception ex) {
- threadUnexpectedException(ex);
- break;
- }
- }
- }
- synchronized void awaitComplete() {
- while (completes == 0 && errors == 0) {
- try {
- wait();
- } catch (Exception ex) {
- threadUnexpectedException(ex);
- break;
- }
- }
- }
- synchronized void awaitError() {
- while (errors == 0) {
- try {
- wait();
- } catch (Exception ex) {
- threadUnexpectedException(ex);
- break;
- }
- }
- }
-
- }
-
- /**
- * A new SubmissionPublisher has no subscribers, a non-null
- * executor, a power-of-two capacity, is not closed, and reports
- * zero demand and lag
- */
- void checkInitialState(SubmissionPublisher<?> p) {
- assertFalse(p.hasSubscribers());
- assertEquals(0, p.getNumberOfSubscribers());
- assertTrue(p.getSubscribers().isEmpty());
- assertFalse(p.isClosed());
- assertNull(p.getClosedException());
- int n = p.getMaxBufferCapacity();
- assertTrue((n & (n - 1)) == 0); // power of two
- assertNotNull(p.getExecutor());
- assertEquals(0, p.estimateMinimumDemand());
- assertEquals(0, p.estimateMaximumLag());
- }
-
- /**
- * A default-constructed SubmissionPublisher has no subscribers,
- * is not closed, has default buffer size, and uses the
- * defaultExecutor
- */
- public void testConstructor1() {
- SubmissionPublisher<Integer> p = new SubmissionPublisher<>();
- checkInitialState(p);
- assertEquals(p.getMaxBufferCapacity(), Flow.defaultBufferSize());
- Executor e = p.getExecutor(), c = ForkJoinPool.commonPool();
- if (ForkJoinPool.getCommonPoolParallelism() > 1)
- assertSame(e, c);
- else
- assertNotSame(e, c);
- }
-
- /**
- * A new SubmissionPublisher has no subscribers, is not closed,
- * has the given buffer size, and uses the given executor
- */
- public void testConstructor2() {
- Executor e = Executors.newFixedThreadPool(1);
- SubmissionPublisher<Integer> p = new SubmissionPublisher<>(e, 8);
- checkInitialState(p);
- assertSame(p.getExecutor(), e);
- assertEquals(8, p.getMaxBufferCapacity());
- }
-
- /**
- * A null Executor argument to SubmissionPublisher constructor throws NPE
- */
- public void testConstructor3() {
- try {
- new SubmissionPublisher<Integer>(null, 8);
- shouldThrow();
- } catch (NullPointerException success) {}
- }
-
- /**
- * A negative capacity argument to SubmissionPublisher constructor
- * throws IAE
- */
- public void testConstructor4() {
- Executor e = Executors.newFixedThreadPool(1);
- try {
- new SubmissionPublisher<Integer>(e, -1);
- shouldThrow();
- } catch (IllegalArgumentException success) {}
- }
-
- /**
- * A closed publisher reports isClosed with no closedException and
- * throws ISE upon attempted submission; a subsequent close or
- * closeExceptionally has no additional effect.
- */
- public void testClose() {
- SubmissionPublisher<Integer> p = basicPublisher();
- checkInitialState(p);
- p.close();
- assertTrue(p.isClosed());
- assertNull(p.getClosedException());
- try {
- p.submit(1);
- shouldThrow();
- } catch (IllegalStateException success) {}
- Throwable ex = new SPException();
- p.closeExceptionally(ex);
- assertTrue(p.isClosed());
- assertNull(p.getClosedException());
- }
-
- /**
- * A publisher closedExceptionally reports isClosed with the
- * closedException and throws ISE upon attempted submission; a
- * subsequent close or closeExceptionally has no additional
- * effect.
- */
- public void testCloseExceptionally() {
- SubmissionPublisher<Integer> p = basicPublisher();
- checkInitialState(p);
- Throwable ex = new SPException();
- p.closeExceptionally(ex);
- assertTrue(p.isClosed());
- assertSame(p.getClosedException(), ex);
- try {
- p.submit(1);
- shouldThrow();
- } catch (IllegalStateException success) {}
- p.close();
- assertTrue(p.isClosed());
- assertSame(p.getClosedException(), ex);
- }
-
- /**
- * Upon subscription, the subscriber's onSubscribe is called, no
- * other Subscriber methods are invoked, the publisher
- * hasSubscribers, isSubscribed is true, and existing
- * subscriptions are unaffected.
- */
- public void testSubscribe1() {
- TestSubscriber s = new TestSubscriber();
- SubmissionPublisher<Integer> p = basicPublisher();
- p.subscribe(s);
- assertTrue(p.hasSubscribers());
- assertEquals(1, p.getNumberOfSubscribers());
- assertTrue(p.getSubscribers().contains(s));
- assertTrue(p.isSubscribed(s));
- s.awaitSubscribe();
- assertNotNull(s.sn);
- assertEquals(0, s.nexts);
- assertEquals(0, s.errors);
- assertEquals(0, s.completes);
- TestSubscriber s2 = new TestSubscriber();
- p.subscribe(s2);
- assertTrue(p.hasSubscribers());
- assertEquals(2, p.getNumberOfSubscribers());
- assertTrue(p.getSubscribers().contains(s));
- assertTrue(p.getSubscribers().contains(s2));
- assertTrue(p.isSubscribed(s));
- assertTrue(p.isSubscribed(s2));
- s2.awaitSubscribe();
- assertNotNull(s2.sn);
- assertEquals(0, s2.nexts);
- assertEquals(0, s2.errors);
- assertEquals(0, s2.completes);
- p.close();
- }
-
- /**
- * If closed, upon subscription, the subscriber's onComplete
- * method is invoked
- */
- public void testSubscribe2() {
- TestSubscriber s = new TestSubscriber();
- SubmissionPublisher<Integer> p = basicPublisher();
- p.close();
- p.subscribe(s);
- s.awaitComplete();
- assertEquals(0, s.nexts);
- assertEquals(0, s.errors);
- assertEquals(1, s.completes, 1);
- }
-
- /**
- * If closedExceptionally, upon subscription, the subscriber's
- * onError method is invoked
- */
- public void testSubscribe3() {
- TestSubscriber s = new TestSubscriber();
- SubmissionPublisher<Integer> p = basicPublisher();
- Throwable ex = new SPException();
- p.closeExceptionally(ex);
- assertTrue(p.isClosed());
- assertSame(p.getClosedException(), ex);
- p.subscribe(s);
- s.awaitError();
- assertEquals(0, s.nexts);
- assertEquals(1, s.errors);
- }
-
- /**
- * Upon attempted resubscription, the subscriber's onError is
- * called and the subscription is cancelled.
- */
- public void testSubscribe4() {
- TestSubscriber s = new TestSubscriber();
- SubmissionPublisher<Integer> p = basicPublisher();
- p.subscribe(s);
- assertTrue(p.hasSubscribers());
- assertEquals(1, p.getNumberOfSubscribers());
- assertTrue(p.getSubscribers().contains(s));
- assertTrue(p.isSubscribed(s));
- s.awaitSubscribe();
- assertNotNull(s.sn);
- assertEquals(0, s.nexts);
- assertEquals(0, s.errors);
- assertEquals(0, s.completes);
- p.subscribe(s);
- s.awaitError();
- assertEquals(0, s.nexts);
- assertEquals(1, s.errors);
- assertFalse(p.isSubscribed(s));
- }
-
- /**
- * An exception thrown in onSubscribe causes onError
- */
- public void testSubscribe5() {
- TestSubscriber s = new TestSubscriber();
- SubmissionPublisher<Integer> p = basicPublisher();
- s.throwOnCall = true;
- try {
- p.subscribe(s);
- } catch (Exception ok) {}
- s.awaitError();
- assertEquals(0, s.nexts);
- assertEquals(1, s.errors);
- assertEquals(0, s.completes);
- }
-
- /**
- * subscribe(null) throws NPE
- */
- public void testSubscribe6() {
- SubmissionPublisher<Integer> p = basicPublisher();
- try {
- p.subscribe(null);
- shouldThrow();
- } catch (NullPointerException success) {}
- checkInitialState(p);
- }
-
- /**
- * Closing a publisher causes onComplete to subscribers
- */
- public void testCloseCompletes() {
- SubmissionPublisher<Integer> p = basicPublisher();
- TestSubscriber s1 = new TestSubscriber();
- TestSubscriber s2 = new TestSubscriber();
- p.subscribe(s1);
- p.subscribe(s2);
- p.submit(1);
- p.close();
- assertTrue(p.isClosed());
- assertNull(p.getClosedException());
- s1.awaitComplete();
- assertEquals(1, s1.nexts);
- assertEquals(1, s1.completes);
- s2.awaitComplete();
- assertEquals(1, s2.nexts);
- assertEquals(1, s2.completes);
- }
-
- /**
- * Closing a publisher exceptionally causes onError to subscribers
- * after they are subscribed
- */
- public void testCloseExceptionallyError() {
- SubmissionPublisher<Integer> p = basicPublisher();
- TestSubscriber s1 = new TestSubscriber();
- TestSubscriber s2 = new TestSubscriber();
- p.subscribe(s1);
- p.subscribe(s2);
- p.submit(1);
- p.closeExceptionally(new SPException());
- assertTrue(p.isClosed());
- s1.awaitSubscribe();
- s1.awaitError();
- assertTrue(s1.nexts <= 1);
- assertEquals(1, s1.errors);
- s2.awaitSubscribe();
- s2.awaitError();
- assertTrue(s2.nexts <= 1);
- assertEquals(1, s2.errors);
- }
-
- /**
- * Cancelling a subscription eventually causes no more onNexts to be issued
- */
- public void testCancel() {
- SubmissionPublisher<Integer> p = basicPublisher();
- TestSubscriber s1 = new TestSubscriber();
- TestSubscriber s2 = new TestSubscriber();
- p.subscribe(s1);
- p.subscribe(s2);
- s1.awaitSubscribe();
- p.submit(1);
- s1.sn.cancel();
- for (int i = 2; i <= 20; ++i)
- p.submit(i);
- p.close();
- s2.awaitComplete();
- assertEquals(20, s2.nexts);
- assertEquals(1, s2.completes);
- assertTrue(s1.nexts < 20);
- assertFalse(p.isSubscribed(s1));
- }
-
- /**
- * Throwing an exception in onNext causes onError
- */
- public void testThrowOnNext() {
- SubmissionPublisher<Integer> p = basicPublisher();
- TestSubscriber s1 = new TestSubscriber();
- TestSubscriber s2 = new TestSubscriber();
- p.subscribe(s1);
- p.subscribe(s2);
- s1.awaitSubscribe();
- p.submit(1);
- s1.throwOnCall = true;
- p.submit(2);
- p.close();
- s2.awaitComplete();
- assertEquals(2, s2.nexts);
- s1.awaitComplete();
- assertEquals(1, s1.errors);
- }
-
- /**
- * If a handler is supplied in constructor, it is invoked when
- * subscriber throws an exception in onNext
- */
- public void testThrowOnNextHandler() {
- AtomicInteger calls = new AtomicInteger();
- SubmissionPublisher<Integer> p = new SubmissionPublisher<>(
- basicExecutor, 8, (s, e) -> calls.getAndIncrement());
- TestSubscriber s1 = new TestSubscriber();
- TestSubscriber s2 = new TestSubscriber();
- p.subscribe(s1);
- p.subscribe(s2);
- s1.awaitSubscribe();
- p.submit(1);
- s1.throwOnCall = true;
- p.submit(2);
- p.close();
- s2.awaitComplete();
- assertEquals(2, s2.nexts);
- assertEquals(1, s2.completes);
- s1.awaitError();
- assertEquals(1, s1.errors);
- assertEquals(1, calls.get());
- }
-
- /**
- * onNext items are issued in the same order to each subscriber
- */
- public void testOrder() {
- SubmissionPublisher<Integer> p = basicPublisher();
- TestSubscriber s1 = new TestSubscriber();
- TestSubscriber s2 = new TestSubscriber();
- p.subscribe(s1);
- p.subscribe(s2);
- for (int i = 1; i <= 20; ++i)
- p.submit(i);
- p.close();
- s2.awaitComplete();
- s1.awaitComplete();
- assertEquals(20, s2.nexts);
- assertEquals(1, s2.completes);
- assertEquals(20, s1.nexts);
- assertEquals(1, s1.completes);
- }
-
- /**
- * onNext is issued only if requested
- */
- public void testRequest1() {
- SubmissionPublisher<Integer> p = basicPublisher();
- TestSubscriber s1 = new TestSubscriber();
- s1.request = false;
- p.subscribe(s1);
- s1.awaitSubscribe();
- assertTrue(p.estimateMinimumDemand() == 0);
- TestSubscriber s2 = new TestSubscriber();
- p.subscribe(s2);
- p.submit(1);
- p.submit(2);
- s2.awaitNext(1);
- assertEquals(0, s1.nexts);
- s1.sn.request(3);
- p.submit(3);
- p.close();
- s2.awaitComplete();
- assertEquals(3, s2.nexts);
- assertEquals(1, s2.completes);
- s1.awaitComplete();
- assertTrue(s1.nexts > 0);
- assertEquals(1, s1.completes);
- }
-
- /**
- * onNext is not issued when requests become zero
- */
- public void testRequest2() {
- SubmissionPublisher<Integer> p = basicPublisher();
- TestSubscriber s1 = new TestSubscriber();
- TestSubscriber s2 = new TestSubscriber();
- p.subscribe(s1);
- p.subscribe(s2);
- s2.awaitSubscribe();
- s1.awaitSubscribe();
- s1.request = false;
- p.submit(1);
- p.submit(2);
- p.close();
- s2.awaitComplete();
- assertEquals(2, s2.nexts);
- assertEquals(1, s2.completes);
- s1.awaitNext(1);
- assertEquals(1, s1.nexts);
- }
-
- /**
- * Non-positive request causes error
- */
- public void testRequest3() {
- SubmissionPublisher<Integer> p = basicPublisher();
- TestSubscriber s1 = new TestSubscriber();
- TestSubscriber s2 = new TestSubscriber();
- TestSubscriber s3 = new TestSubscriber();
- p.subscribe(s1);
- p.subscribe(s2);
- p.subscribe(s3);
- s3.awaitSubscribe();
- s2.awaitSubscribe();
- s1.awaitSubscribe();
- s1.sn.request(-1L);
- s3.sn.request(0L);
- p.submit(1);
- p.submit(2);
- p.close();
- s2.awaitComplete();
- assertEquals(2, s2.nexts);
- assertEquals(1, s2.completes);
- s1.awaitError();
- assertEquals(1, s1.errors);
- assertTrue(s1.lastError instanceof IllegalArgumentException);
- s3.awaitError();
- assertEquals(1, s3.errors);
- assertTrue(s3.lastError instanceof IllegalArgumentException);
- }
-
- /**
- * estimateMinimumDemand reports 0 until request, nonzero after
- * request, and zero again after delivery
- */
- public void testEstimateMinimumDemand() {
- TestSubscriber s = new TestSubscriber();
- SubmissionPublisher<Integer> p = basicPublisher();
- s.request = false;
- p.subscribe(s);
- s.awaitSubscribe();
- assertEquals(0, p.estimateMinimumDemand());
- s.sn.request(1);
- assertEquals(1, p.estimateMinimumDemand());
- p.submit(1);
- s.awaitNext(1);
- assertEquals(0, p.estimateMinimumDemand());
- }
-
- /**
- * submit to a publisher with no subscribers returns lag 0
- */
- public void testEmptySubmit() {
- SubmissionPublisher<Integer> p = basicPublisher();
- assertEquals(0, p.submit(1));
- }
-
- /**
- * submit(null) throws NPE
- */
- public void testNullSubmit() {
- SubmissionPublisher<Integer> p = basicPublisher();
- try {
- p.submit(null);
- shouldThrow();
- } catch (NullPointerException success) {}
- }
-
- /**
- * submit returns number of lagged items, compatible with result
- * of estimateMaximumLag.
- */
- public void testLaggedSubmit() {
- SubmissionPublisher<Integer> p = basicPublisher();
- TestSubscriber s1 = new TestSubscriber();
- s1.request = false;
- TestSubscriber s2 = new TestSubscriber();
- s2.request = false;
- p.subscribe(s1);
- p.subscribe(s2);
- s2.awaitSubscribe();
- s1.awaitSubscribe();
- assertEquals(1, p.submit(1));
- assertTrue(p.estimateMaximumLag() >= 1);
- assertTrue(p.submit(2) >= 2);
- assertTrue(p.estimateMaximumLag() >= 2);
- s1.sn.request(4);
- assertTrue(p.submit(3) >= 3);
- assertTrue(p.estimateMaximumLag() >= 3);
- s2.sn.request(4);
- p.submit(4);
- p.close();
- s2.awaitComplete();
- assertEquals(4, s2.nexts);
- s1.awaitComplete();
- assertEquals(4, s2.nexts);
- }
-
- /**
- * submit eventually issues requested items when buffer capacity is 1
- */
- public void testCap1Submit() {
- SubmissionPublisher<Integer> p
- = new SubmissionPublisher<>(basicExecutor, 1);
- TestSubscriber s1 = new TestSubscriber();
- TestSubscriber s2 = new TestSubscriber();
- p.subscribe(s1);
- p.subscribe(s2);
- for (int i = 1; i <= 20; ++i) {
- assertTrue(p.estimateMinimumDemand() <= 1);
- assertTrue(p.submit(i) >= 0);
- }
- p.close();
- s2.awaitComplete();
- s1.awaitComplete();
- assertEquals(20, s2.nexts);
- assertEquals(1, s2.completes);
- assertEquals(20, s1.nexts);
- assertEquals(1, s1.completes);
- }
-
- static boolean noopHandle(AtomicInteger count) {
- count.getAndIncrement();
- return false;
- }
-
- static boolean reqHandle(AtomicInteger count, Subscriber s) {
- count.getAndIncrement();
- ((TestSubscriber)s).sn.request(Long.MAX_VALUE);
- return true;
- }
-
- /**
- * offer to a publisher with no subscribers returns lag 0
- */
- public void testEmptyOffer() {
- SubmissionPublisher<Integer> p = basicPublisher();
- assertEquals(0, p.offer(1, null));
- }
-
- /**
- * offer(null) throws NPE
- */
- public void testNullOffer() {
- SubmissionPublisher<Integer> p = basicPublisher();
- try {
- p.offer(null, null);
- shouldThrow();
- } catch (NullPointerException success) {}
- }
-
- /**
- * offer returns number of lagged items if not saturated
- */
- public void testLaggedOffer() {
- SubmissionPublisher<Integer> p = basicPublisher();
- TestSubscriber s1 = new TestSubscriber();
- s1.request = false;
- TestSubscriber s2 = new TestSubscriber();
- s2.request = false;
- p.subscribe(s1);
- p.subscribe(s2);
- s2.awaitSubscribe();
- s1.awaitSubscribe();
- assertTrue(p.offer(1, null) >= 1);
- assertTrue(p.offer(2, null) >= 2);
- s1.sn.request(4);
- assertTrue(p.offer(3, null) >= 3);
- s2.sn.request(4);
- p.offer(4, null);
- p.close();
- s2.awaitComplete();
- assertEquals(4, s2.nexts);
- s1.awaitComplete();
- assertEquals(4, s2.nexts);
- }
-
- /**
- * offer reports drops if saturated
- */
- public void testDroppedOffer() {
- SubmissionPublisher<Integer> p
- = new SubmissionPublisher<>(basicExecutor, 4);
- TestSubscriber s1 = new TestSubscriber();
- s1.request = false;
- TestSubscriber s2 = new TestSubscriber();
- s2.request = false;
- p.subscribe(s1);
- p.subscribe(s2);
- s2.awaitSubscribe();
- s1.awaitSubscribe();
- for (int i = 1; i <= 4; ++i)
- assertTrue(p.offer(i, null) >= 0);
- p.offer(5, null);
- assertTrue(p.offer(6, null) < 0);
- s1.sn.request(64);
- assertTrue(p.offer(7, null) < 0);
- s2.sn.request(64);
- p.close();
- s2.awaitComplete();
- assertTrue(s2.nexts >= 4);
- s1.awaitComplete();
- assertTrue(s1.nexts >= 4);
- }
-
- /**
- * offer invokes drop handler if saturated
- */
- public void testHandledDroppedOffer() {
- AtomicInteger calls = new AtomicInteger();
- SubmissionPublisher<Integer> p
- = new SubmissionPublisher<>(basicExecutor, 4);
- TestSubscriber s1 = new TestSubscriber();
- s1.request = false;
- TestSubscriber s2 = new TestSubscriber();
- s2.request = false;
- p.subscribe(s1);
- p.subscribe(s2);
- s2.awaitSubscribe();
- s1.awaitSubscribe();
- for (int i = 1; i <= 4; ++i)
- assertTrue(p.offer(i, (s, x) -> noopHandle(calls)) >= 0);
- p.offer(4, (s, x) -> noopHandle(calls));
- assertTrue(p.offer(6, (s, x) -> noopHandle(calls)) < 0);
- s1.sn.request(64);
- assertTrue(p.offer(7, (s, x) -> noopHandle(calls)) < 0);
- s2.sn.request(64);
- p.close();
- s2.awaitComplete();
- s1.awaitComplete();
- assertTrue(calls.get() >= 4);
- }
-
- /**
- * offer succeeds if drop handler forces request
- */
- public void testRecoveredHandledDroppedOffer() {
- AtomicInteger calls = new AtomicInteger();
- SubmissionPublisher<Integer> p
- = new SubmissionPublisher<>(basicExecutor, 4);
- TestSubscriber s1 = new TestSubscriber();
- s1.request = false;
- TestSubscriber s2 = new TestSubscriber();
- s2.request = false;
- p.subscribe(s1);
- p.subscribe(s2);
- s2.awaitSubscribe();
- s1.awaitSubscribe();
- int n = 0;
- for (int i = 1; i <= 8; ++i) {
- int d = p.offer(i, (s, x) -> reqHandle(calls, s));
- n = n + 2 + (d < 0 ? d : 0);
- }
- p.close();
- s2.awaitComplete();
- s1.awaitComplete();
- assertEquals(n, s1.nexts + s2.nexts);
- assertTrue(calls.get() >= 2);
- }
-
- /**
- * Timed offer to a publisher with no subscribers returns lag 0
- */
- public void testEmptyTimedOffer() {
- SubmissionPublisher<Integer> p = basicPublisher();
- long startTime = System.nanoTime();
- assertEquals(0, p.offer(1, LONG_DELAY_MS, MILLISECONDS, null));
- assertTrue(millisElapsedSince(startTime) < LONG_DELAY_MS / 2);
- }
-
- /**
- * Timed offer with null item or TimeUnit throws NPE
- */
- public void testNullTimedOffer() {
- SubmissionPublisher<Integer> p = basicPublisher();
- long startTime = System.nanoTime();
- try {
- p.offer(null, LONG_DELAY_MS, MILLISECONDS, null);
- shouldThrow();
- } catch (NullPointerException success) {}
- try {
- p.offer(1, LONG_DELAY_MS, null, null);
- shouldThrow();
- } catch (NullPointerException success) {}
- assertTrue(millisElapsedSince(startTime) < LONG_DELAY_MS / 2);
- }
-
- /**
- * Timed offer returns number of lagged items if not saturated
- */
- public void testLaggedTimedOffer() {
- SubmissionPublisher<Integer> p = basicPublisher();
- TestSubscriber s1 = new TestSubscriber();
- s1.request = false;
- TestSubscriber s2 = new TestSubscriber();
- s2.request = false;
- p.subscribe(s1);
- p.subscribe(s2);
- s2.awaitSubscribe();
- s1.awaitSubscribe();
- long startTime = System.nanoTime();
- assertTrue(p.offer(1, LONG_DELAY_MS, MILLISECONDS, null) >= 1);
- assertTrue(p.offer(2, LONG_DELAY_MS, MILLISECONDS, null) >= 2);
- s1.sn.request(4);
- assertTrue(p.offer(3, LONG_DELAY_MS, MILLISECONDS, null) >= 3);
- s2.sn.request(4);
- p.offer(4, LONG_DELAY_MS, MILLISECONDS, null);
- p.close();
- s2.awaitComplete();
- assertEquals(4, s2.nexts);
- s1.awaitComplete();
- assertEquals(4, s2.nexts);
- assertTrue(millisElapsedSince(startTime) < LONG_DELAY_MS / 2);
- }
-
- /**
- * Timed offer reports drops if saturated
- */
- public void testDroppedTimedOffer() {
- SubmissionPublisher<Integer> p
- = new SubmissionPublisher<>(basicExecutor, 4);
- TestSubscriber s1 = new TestSubscriber();
- s1.request = false;
- TestSubscriber s2 = new TestSubscriber();
- s2.request = false;
- p.subscribe(s1);
- p.subscribe(s2);
- s2.awaitSubscribe();
- s1.awaitSubscribe();
- long delay = timeoutMillis();
- for (int i = 1; i <= 4; ++i)
- assertTrue(p.offer(i, delay, MILLISECONDS, null) >= 0);
- long startTime = System.nanoTime();
- assertTrue(p.offer(5, delay, MILLISECONDS, null) < 0);
- s1.sn.request(64);
- assertTrue(p.offer(6, delay, MILLISECONDS, null) < 0);
- // 2 * delay should elapse but check only 1 * delay to allow timer slop
- assertTrue(millisElapsedSince(startTime) >= delay);
- s2.sn.request(64);
- p.close();
- s2.awaitComplete();
- assertTrue(s2.nexts >= 2);
- s1.awaitComplete();
- assertTrue(s1.nexts >= 2);
- }
-
- /**
- * Timed offer invokes drop handler if saturated
- */
- public void testHandledDroppedTimedOffer() {
- AtomicInteger calls = new AtomicInteger();
- SubmissionPublisher<Integer> p
- = new SubmissionPublisher<>(basicExecutor, 4);
- TestSubscriber s1 = new TestSubscriber();
- s1.request = false;
- TestSubscriber s2 = new TestSubscriber();
- s2.request = false;
- p.subscribe(s1);
- p.subscribe(s2);
- s2.awaitSubscribe();
- s1.awaitSubscribe();
- long delay = timeoutMillis();
- for (int i = 1; i <= 4; ++i)
- assertTrue(p.offer(i, delay, MILLISECONDS, (s, x) -> noopHandle(calls)) >= 0);
- long startTime = System.nanoTime();
- assertTrue(p.offer(5, delay, MILLISECONDS, (s, x) -> noopHandle(calls)) < 0);
- s1.sn.request(64);
- assertTrue(p.offer(6, delay, MILLISECONDS, (s, x) -> noopHandle(calls)) < 0);
- assertTrue(millisElapsedSince(startTime) >= delay);
- s2.sn.request(64);
- p.close();
- s2.awaitComplete();
- s1.awaitComplete();
- assertTrue(calls.get() >= 2);
- }
-
- /**
- * Timed offer succeeds if drop handler forces request
- */
- public void testRecoveredHandledDroppedTimedOffer() {
- AtomicInteger calls = new AtomicInteger();
- SubmissionPublisher<Integer> p
- = new SubmissionPublisher<>(basicExecutor, 4);
- TestSubscriber s1 = new TestSubscriber();
- s1.request = false;
- TestSubscriber s2 = new TestSubscriber();
- s2.request = false;
- p.subscribe(s1);
- p.subscribe(s2);
- s2.awaitSubscribe();
- s1.awaitSubscribe();
- int n = 0;
- long delay = timeoutMillis();
- long startTime = System.nanoTime();
- for (int i = 1; i <= 6; ++i) {
- int d = p.offer(i, delay, MILLISECONDS, (s, x) -> reqHandle(calls, s));
- n = n + 2 + (d < 0 ? d : 0);
- }
- assertTrue(millisElapsedSince(startTime) >= delay);
- p.close();
- s2.awaitComplete();
- s1.awaitComplete();
- assertEquals(n, s1.nexts + s2.nexts);
- assertTrue(calls.get() >= 2);
- }
-
- /**
- * consume returns a CompletableFuture that is done when
- * publisher completes
- */
- public void testConsume() {
- AtomicInteger sum = new AtomicInteger();
- SubmissionPublisher<Integer> p = basicPublisher();
- CompletableFuture<Void> f =
- p.consume((Integer x) -> sum.getAndAdd(x.intValue()));
- int n = 20;
- for (int i = 1; i <= n; ++i)
- p.submit(i);
- p.close();
- f.join();
- assertEquals((n * (n + 1)) / 2, sum.get());
- }
-
- /**
- * consume(null) throws NPE
- */
- public void testConsumeNPE() {
- SubmissionPublisher<Integer> p = basicPublisher();
- try {
- CompletableFuture<Void> f = p.consume(null);
- shouldThrow();
- } catch (NullPointerException success) {}
- }
-
- /**
- * consume eventually stops processing published items if cancelled
- */
- public void testCancelledConsume() {
- AtomicInteger count = new AtomicInteger();
- SubmissionPublisher<Integer> p = basicPublisher();
- CompletableFuture<Void> f = p.consume(x -> count.getAndIncrement());
- f.cancel(true);
- int n = 1000000; // arbitrary limit
- for (int i = 1; i <= n; ++i)
- p.submit(i);
- assertTrue(count.get() < n);
- }
-
-}
diff --git a/ojluni/src/test/java/util/concurrent/tck/SynchronousQueueTest.java b/ojluni/src/test/java/util/concurrent/tck/SynchronousQueueTest.java
index 345ac9c..5ff8ea2 100644
--- a/ojluni/src/test/java/util/concurrent/tck/SynchronousQueueTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/SynchronousQueueTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import java.util.ArrayList;
diff --git a/ojluni/src/test/java/util/concurrent/tck/SystemTest.java b/ojluni/src/test/java/util/concurrent/tck/SystemTest.java
index abf3b49..fc2a05b 100644
--- a/ojluni/src/test/java/util/concurrent/tck/SystemTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/SystemTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import junit.framework.Test;
import junit.framework.TestSuite;
diff --git a/ojluni/src/test/java/util/concurrent/tck/ThreadLocalRandom8Test.java b/ojluni/src/test/java/util/concurrent/tck/ThreadLocalRandom8Test.java
index eef34d3..37ecba1 100644
--- a/ojluni/src/test/java/util/concurrent/tck/ThreadLocalRandom8Test.java
+++ b/ojluni/src/test/java/util/concurrent/tck/ThreadLocalRandom8Test.java
@@ -31,6 +31,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import java.util.concurrent.ThreadLocalRandom;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.LongAdder;
diff --git a/ojluni/src/test/java/util/concurrent/tck/ThreadLocalRandomTest.java b/ojluni/src/test/java/util/concurrent/tck/ThreadLocalRandomTest.java
index d805c4d..9fa46b5 100644
--- a/ojluni/src/test/java/util/concurrent/tck/ThreadLocalRandomTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/ThreadLocalRandomTest.java
@@ -31,6 +31,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import java.util.concurrent.ThreadLocalRandom;
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.atomic.AtomicReference;
diff --git a/ojluni/src/test/java/util/concurrent/tck/ThreadLocalTest.java b/ojluni/src/test/java/util/concurrent/tck/ThreadLocalTest.java
index 51d2197..05588ba 100644
--- a/ojluni/src/test/java/util/concurrent/tck/ThreadLocalTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/ThreadLocalTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import junit.framework.Test;
import junit.framework.TestSuite;
diff --git a/ojluni/src/test/java/util/concurrent/tck/ThreadPoolExecutorSubclassTest.java b/ojluni/src/test/java/util/concurrent/tck/ThreadPoolExecutorSubclassTest.java
index 38862ce..2e84a6e 100644
--- a/ojluni/src/test/java/util/concurrent/tck/ThreadPoolExecutorSubclassTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/ThreadPoolExecutorSubclassTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static java.util.concurrent.TimeUnit.SECONDS;
diff --git a/ojluni/src/test/java/util/concurrent/tck/ThreadPoolExecutorTest.java b/ojluni/src/test/java/util/concurrent/tck/ThreadPoolExecutorTest.java
index cf0b097..90f9eb3 100644
--- a/ojluni/src/test/java/util/concurrent/tck/ThreadPoolExecutorTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/ThreadPoolExecutorTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static java.util.concurrent.TimeUnit.NANOSECONDS;
import static java.util.concurrent.TimeUnit.SECONDS;
diff --git a/ojluni/src/test/java/util/concurrent/tck/ThreadTest.java b/ojluni/src/test/java/util/concurrent/tck/ThreadTest.java
index 92b2aca..d15ef92 100644
--- a/ojluni/src/test/java/util/concurrent/tck/ThreadTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/ThreadTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import junit.framework.Test;
import junit.framework.TestSuite;
diff --git a/ojluni/src/test/java/util/concurrent/tck/TimeUnit8Test.java b/ojluni/src/test/java/util/concurrent/tck/TimeUnit8Test.java
deleted file mode 100644
index b5fa181..0000000
--- a/ojluni/src/test/java/util/concurrent/tck/TimeUnit8Test.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file:
- *
- * Written by Doug Lea and Martin Buchholz with assistance from
- * members of JCP JSR-166 Expert Group and released to the public
- * domain, as explained at
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-import static java.util.concurrent.TimeUnit.DAYS;
-import static java.util.concurrent.TimeUnit.HOURS;
-import static java.util.concurrent.TimeUnit.MICROSECONDS;
-import static java.util.concurrent.TimeUnit.MILLISECONDS;
-import static java.util.concurrent.TimeUnit.MINUTES;
-import static java.util.concurrent.TimeUnit.NANOSECONDS;
-import static java.util.concurrent.TimeUnit.SECONDS;
-
-import java.time.temporal.ChronoUnit;
-import java.util.concurrent.TimeUnit;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class TimeUnit8Test extends JSR166TestCase {
- public static void main(String[] args) {
- main(suite(), args);
- }
-
- public static Test suite() {
- return new TestSuite(TimeUnit8Test.class);
- }
-
- /**
- * tests for toChronoUnit.
- */
- public void testToChronoUnit() throws Exception {
- assertSame(ChronoUnit.NANOS, NANOSECONDS.toChronoUnit());
- assertSame(ChronoUnit.MICROS, MICROSECONDS.toChronoUnit());
- assertSame(ChronoUnit.MILLIS, MILLISECONDS.toChronoUnit());
- assertSame(ChronoUnit.SECONDS, SECONDS.toChronoUnit());
- assertSame(ChronoUnit.MINUTES, MINUTES.toChronoUnit());
- assertSame(ChronoUnit.HOURS, HOURS.toChronoUnit());
- assertSame(ChronoUnit.DAYS, DAYS.toChronoUnit());
-
- // Every TimeUnit has a defined ChronoUnit equivalent
- for (TimeUnit x : TimeUnit.values())
- assertSame(x, TimeUnit.of(x.toChronoUnit()));
- }
-
- /**
- * tests for TimeUnit.of(ChronoUnit).
- */
- public void testTimeUnitOf() throws Exception {
- assertSame(NANOSECONDS, TimeUnit.of(ChronoUnit.NANOS));
- assertSame(MICROSECONDS, TimeUnit.of(ChronoUnit.MICROS));
- assertSame(MILLISECONDS, TimeUnit.of(ChronoUnit.MILLIS));
- assertSame(SECONDS, TimeUnit.of(ChronoUnit.SECONDS));
- assertSame(MINUTES, TimeUnit.of(ChronoUnit.MINUTES));
- assertSame(HOURS, TimeUnit.of(ChronoUnit.HOURS));
- assertSame(DAYS, TimeUnit.of(ChronoUnit.DAYS));
-
- assertThrows(NullPointerException.class,
- () -> TimeUnit.of((ChronoUnit)null));
-
- // ChronoUnits either round trip to their TimeUnit
- // equivalents, or throw IllegalArgumentException.
- for (ChronoUnit cu : ChronoUnit.values()) {
- final TimeUnit tu;
- try {
- tu = TimeUnit.of(cu);
- } catch (IllegalArgumentException acceptable) {
- continue;
- }
- assertSame(cu, tu.toChronoUnit());
- }
- }
-
-}
diff --git a/ojluni/src/test/java/util/concurrent/tck/TimeUnitTest.java b/ojluni/src/test/java/util/concurrent/tck/TimeUnitTest.java
index 437b49b..8ff88597 100644
--- a/ojluni/src/test/java/util/concurrent/tck/TimeUnitTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/TimeUnitTest.java
@@ -33,6 +33,7 @@
* Pat Fisher, Mike Judd.
*/
+package test.java.util.concurrent.tck;
import static java.util.concurrent.TimeUnit.DAYS;
import static java.util.concurrent.TimeUnit.HOURS;
import static java.util.concurrent.TimeUnit.MICROSECONDS;
diff --git a/ojluni/src/test/java/util/concurrent/tck/TreeMapTest.java b/ojluni/src/test/java/util/concurrent/tck/TreeMapTest.java
index ada561e..0953302 100644
--- a/ojluni/src/test/java/util/concurrent/tck/TreeMapTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/TreeMapTest.java
@@ -31,6 +31,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import java.util.Arrays;
import java.util.BitSet;
import java.util.Collection;
diff --git a/ojluni/src/test/java/util/concurrent/tck/TreeSetTest.java b/ojluni/src/test/java/util/concurrent/tck/TreeSetTest.java
index a37922e..9f40007 100644
--- a/ojluni/src/test/java/util/concurrent/tck/TreeSetTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/TreeSetTest.java
@@ -31,6 +31,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import java.util.Arrays;
import java.util.BitSet;
import java.util.Collection;
diff --git a/ojluni/src/test/java/util/concurrent/tck/TreeSubMapTest.java b/ojluni/src/test/java/util/concurrent/tck/TreeSubMapTest.java
index 1b5fa42..77ff558 100644
--- a/ojluni/src/test/java/util/concurrent/tck/TreeSubMapTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/TreeSubMapTest.java
@@ -31,6 +31,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
diff --git a/ojluni/src/test/java/util/concurrent/tck/TreeSubSetTest.java b/ojluni/src/test/java/util/concurrent/tck/TreeSubSetTest.java
index 37edc1f..8b4dddf 100644
--- a/ojluni/src/test/java/util/concurrent/tck/TreeSubSetTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/TreeSubSetTest.java
@@ -31,6 +31,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Iterator;
diff --git a/ojluni/src/test/java/util/concurrent/tck/VectorTest.java b/ojluni/src/test/java/util/concurrent/tck/VectorTest.java
index 78c2364..4100843 100644
--- a/ojluni/src/test/java/util/concurrent/tck/VectorTest.java
+++ b/ojluni/src/test/java/util/concurrent/tck/VectorTest.java
@@ -32,6 +32,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
+package test.java.util.concurrent.tck;
import java.util.Vector;
import java.util.Collection;
import java.util.List;