diff --git a/core/src/test/scala/org/apache/spark/SparkFunSuite.scala b/core/src/test/scala/org/apache/spark/SparkFunSuite.scala
index 0081bca63959c60f9df1e63c84a4b2944e213db2..cd876807f890e85043a3addad9c995509115b607 100644
--- a/core/src/test/scala/org/apache/spark/SparkFunSuite.scala
+++ b/core/src/test/scala/org/apache/spark/SparkFunSuite.scala
@@ -26,7 +26,7 @@ import org.apache.spark.util.AccumulatorContext
 /**
  * Base abstract class for all unit tests in Spark for handling common functionality.
  */
-private[spark] abstract class SparkFunSuite
+abstract class SparkFunSuite
   extends FunSuite
   with BeforeAndAfterAll
   with Logging {
diff --git a/external/java8-tests/src/test/java/org/apache/spark/Java8APISuite.java b/external/java8-tests/src/test/java/test/org/apache/spark/java8/Java8RDDAPISuite.java
similarity index 98%
rename from external/java8-tests/src/test/java/org/apache/spark/Java8APISuite.java
rename to external/java8-tests/src/test/java/test/org/apache/spark/java8/Java8RDDAPISuite.java
index 6ac5ca9cf56af2739bbc77121f55e84eebfbeb4e..8ee0e7e4156bf17a1e3cea9fa33cf8dca5b9c995 100644
--- a/external/java8-tests/src/test/java/org/apache/spark/Java8APISuite.java
+++ b/external/java8-tests/src/test/java/test/org/apache/spark/java8/Java8RDDAPISuite.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.spark;
+package test.org.apache.spark.java8;
 
 import java.io.File;
 import java.io.Serializable;
@@ -33,6 +33,8 @@ import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
+import org.apache.spark.Accumulator;
+import org.apache.spark.AccumulatorParam;
 import org.apache.spark.api.java.JavaDoubleRDD;
 import org.apache.spark.api.java.JavaPairRDD;
 import org.apache.spark.api.java.JavaRDD;
@@ -45,8 +47,8 @@ import org.apache.spark.util.Utils;
  * Most of these tests replicate org.apache.spark.JavaAPISuite using java 8
  * lambda syntax.
  */
-public class Java8APISuite implements Serializable {
-  static int foreachCalls = 0;
+public class Java8RDDAPISuite implements Serializable {
+  private static int foreachCalls = 0;
   private transient JavaSparkContext sc;
 
   @Before
diff --git a/external/java8-tests/src/test/java/org/apache/spark/streaming/Java8APISuite.java b/external/java8-tests/src/test/java/test/org/apache/spark/java8/dstream/Java8APISuite.java
similarity index 99%
rename from external/java8-tests/src/test/java/org/apache/spark/streaming/Java8APISuite.java
rename to external/java8-tests/src/test/java/test/org/apache/spark/java8/dstream/Java8APISuite.java
index d0fed303e659c965a589f6d7a7ab47b70c86b563..cf5607f5e814ee41c26ae87ebaf9769d0704626f 100644
--- a/external/java8-tests/src/test/java/org/apache/spark/streaming/Java8APISuite.java
+++ b/external/java8-tests/src/test/java/test/org/apache/spark/java8/dstream/Java8APISuite.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.spark.streaming;
+package test.org.apache.spark.java8.dstream;
 
 import java.io.Serializable;
 import java.util.*;
@@ -33,6 +33,7 @@ import org.apache.spark.api.java.Optional;
 import org.apache.spark.api.java.JavaPairRDD;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.spark.api.java.function.PairFunction;
+import org.apache.spark.streaming.*;
 import org.apache.spark.streaming.api.java.JavaDStream;
 import org.apache.spark.streaming.api.java.JavaPairDStream;
 import org.apache.spark.streaming.api.java.JavaMapWithStateDStream;
diff --git a/external/java8-tests/src/test/java/org/apache/spark/sql/Java8DatasetAggregatorSuite.java b/external/java8-tests/src/test/java/test/org/apache/spark/java8/sql/Java8DatasetAggregatorSuite.java
similarity index 88%
rename from external/java8-tests/src/test/java/org/apache/spark/sql/Java8DatasetAggregatorSuite.java
rename to external/java8-tests/src/test/java/test/org/apache/spark/java8/sql/Java8DatasetAggregatorSuite.java
index 1a2aea67d9d0369485d3a0e0874ba61b181bbc1e..10d25fa4458a4871dd837ab589740053af71bfd8 100644
--- a/external/java8-tests/src/test/java/org/apache/spark/sql/Java8DatasetAggregatorSuite.java
+++ b/external/java8-tests/src/test/java/test/org/apache/spark/java8/sql/Java8DatasetAggregatorSuite.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package test.org.apache.spark.sql.sources;
+package test.org.apache.spark.java8.sql;
 
 import java.util.Arrays;
 
@@ -26,6 +26,7 @@ import scala.Tuple2;
 import org.apache.spark.sql.Dataset;
 import org.apache.spark.sql.KeyValueGroupedDataset;
 import org.apache.spark.sql.expressions.javalang.typed;
+import test.org.apache.spark.sql.JavaDatasetAggregatorSuiteBase;
 
 /**
  * Suite that replicates tests in JavaDatasetAggregatorSuite using lambda syntax.
@@ -42,7 +43,7 @@ public class Java8DatasetAggregatorSuite extends JavaDatasetAggregatorSuiteBase
   public void testTypedAggregationCount() {
     KeyValueGroupedDataset<String, Tuple2<String, Integer>> grouped = generateGroupedDataset();
     Dataset<Tuple2<String, Long>> agged = grouped.agg(typed.count(v -> v));
-    Assert.assertEquals(Arrays.asList(tuple2("a", 2), tuple2("b", 1)), agged.collectAsList());
+    Assert.assertEquals(Arrays.asList(tuple2("a", 2L), tuple2("b", 1L)), agged.collectAsList());
   }
 
   @Test
@@ -56,6 +57,6 @@ public class Java8DatasetAggregatorSuite extends JavaDatasetAggregatorSuiteBase
   public void testTypedAggregationSumLong() {
     KeyValueGroupedDataset<String, Tuple2<String, Integer>> grouped = generateGroupedDataset();
     Dataset<Tuple2<String, Long>> agged = grouped.agg(typed.sumLong(v -> (long)v._2()));
-    Assert.assertEquals(Arrays.asList(tuple2("a", 3), tuple2("b", 3)), agged.collectAsList());
+    Assert.assertEquals(Arrays.asList(tuple2("a", 3L), tuple2("b", 3L)), agged.collectAsList());
   }
 }
diff --git a/external/java8-tests/src/test/scala/org/apache/spark/JDK8ScalaSuite.scala b/external/java8-tests/src/test/scala/test/org/apache/spark/java8/JDK8ScalaSuite.scala
similarity index 89%
rename from external/java8-tests/src/test/scala/org/apache/spark/JDK8ScalaSuite.scala
rename to external/java8-tests/src/test/scala/test/org/apache/spark/java8/JDK8ScalaSuite.scala
index fa0681db41088b90bc3c1ea71ee458fc1e683062..c4042e47e84e8c36bbbd3862d3c3673c6130191e 100644
--- a/external/java8-tests/src/test/scala/org/apache/spark/JDK8ScalaSuite.scala
+++ b/external/java8-tests/src/test/scala/test/org/apache/spark/java8/JDK8ScalaSuite.scala
@@ -15,7 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.spark
+package test.org.apache.spark.java8
+
+import org.apache.spark.SharedSparkContext
+import org.apache.spark.SparkFunSuite
 
 /**
  * Test cases where JDK8-compiled Scala user code is used with Spark.
diff --git a/sql/core/src/test/java/test/org/apache/spark/sql/sources/JavaDatasetAggregatorSuite.java b/sql/core/src/test/java/test/org/apache/spark/sql/JavaDatasetAggregatorSuite.java
similarity index 99%
rename from sql/core/src/test/java/test/org/apache/spark/sql/sources/JavaDatasetAggregatorSuite.java
rename to sql/core/src/test/java/test/org/apache/spark/sql/JavaDatasetAggregatorSuite.java
index f9842e130b5d0e0fc447638a5a47e505c3beffda..fe863715162f54ade8a52b51aebbef52bcb61a52 100644
--- a/sql/core/src/test/java/test/org/apache/spark/sql/sources/JavaDatasetAggregatorSuite.java
+++ b/sql/core/src/test/java/test/org/apache/spark/sql/JavaDatasetAggregatorSuite.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package test.org.apache.spark.sql.sources;
+package test.org.apache.spark.sql;
 
 import java.util.Arrays;
 
diff --git a/sql/core/src/test/java/test/org/apache/spark/sql/sources/JavaDatasetAggregatorSuiteBase.java b/sql/core/src/test/java/test/org/apache/spark/sql/JavaDatasetAggregatorSuiteBase.java
similarity index 98%
rename from sql/core/src/test/java/test/org/apache/spark/sql/sources/JavaDatasetAggregatorSuiteBase.java
rename to sql/core/src/test/java/test/org/apache/spark/sql/JavaDatasetAggregatorSuiteBase.java
index 059c2d9f2cde56b1cfd75907865c830d52ae4175..8fc4eff55ddd00bc30fcb37949c2990eeb822ac2 100644
--- a/sql/core/src/test/java/test/org/apache/spark/sql/sources/JavaDatasetAggregatorSuiteBase.java
+++ b/sql/core/src/test/java/test/org/apache/spark/sql/JavaDatasetAggregatorSuiteBase.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package test.org.apache.spark.sql.sources;
+package test.org.apache.spark.sql;
 
 import java.io.Serializable;
 import java.util.Arrays;
diff --git a/sql/core/src/test/java/test/org/apache/spark/sql/sources/JavaSaveLoadSuite.java b/sql/core/src/test/java/test/org/apache/spark/sql/JavaSaveLoadSuite.java
similarity index 98%
rename from sql/core/src/test/java/test/org/apache/spark/sql/sources/JavaSaveLoadSuite.java
rename to sql/core/src/test/java/test/org/apache/spark/sql/JavaSaveLoadSuite.java
index 9840bc46f95f27c62f22e0b41cb7e1d780111fea..6941c86dfcd4b4db3001bf094733a86d4c716320 100644
--- a/sql/core/src/test/java/test/org/apache/spark/sql/sources/JavaSaveLoadSuite.java
+++ b/sql/core/src/test/java/test/org/apache/spark/sql/JavaSaveLoadSuite.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package test.org.apache.spark.sql.sources;
+package test.org.apache.spark.sql;
 
 import java.io.File;
 import java.io.IOException;