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;