Skip to content

Commit

Permalink
User the class generator for the repl class loader tests too
Browse files Browse the repository at this point in the history
  • Loading branch information
holdenk committed Apr 8, 2014
1 parent f0b7114 commit 644719f
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,34 +20,47 @@ package org.apache.spark.repl
import java.io.File
import java.net.URLClassLoader

import org.scalatest.BeforeAndAfterAll
import org.scalatest.FunSuite

class ExecutorClassLoaderSuite extends FunSuite {
import com.google.common.io.Files

val spark_home = sys.env.get("SPARK_HOME").orElse(sys.props.get("spark.home")).get
val url1 = "file://" + spark_home + "/core/src/test/resources/classes1/"
val urls2 = List(new File(spark_home + "/core/src/test/resources/classes2/").toURI.toURL).toArray
import org.apache.spark.TestUtils

class ExecutorClassLoaderSuite extends FunSuite with BeforeAndAfterAll {

val childClassNames = List("ReplFakeClass1", "ReplFakeClass2")
val parentClassNames = List("ReplFakeClass1", "ReplFakeClass2", "ReplFakeClass3")
val tempDir1 = Files.createTempDir()
val tempDir2 = Files.createTempDir()
val url1 = "file://" + tempDir1
val urls2 = List(tempDir2.toURI.toURL).toArray

override def beforeAll() {
childClassNames.foreach(TestUtils.createCompiledClassWithValue(_, 1, tempDir1))
parentClassNames.foreach(TestUtils.createCompiledClassWithValue(_, 2, tempDir2))
}

test("child first") {
val parentLoader = new URLClassLoader(urls2, null)
val classLoader = new FlexibleExecutorClassLoader(url1, parentLoader, true)
val fakeClass = classLoader.loadClass("org.apache.spark.test.FakeClass2").newInstance()
val fakeClass = classLoader.loadClass("ReplFakeClass2").newInstance()
val fakeClassVersion = fakeClass.toString
assert(fakeClassVersion === "1")
}

test("parent first") {
val parentLoader = new URLClassLoader(urls2, null)
val classLoader = new ExecutorClassLoader(url1, parentLoader)
val fakeClass = classLoader.loadClass("org.apache.spark.test.FakeClass1").newInstance()
val fakeClass = classLoader.loadClass("ReplFakeClass1").newInstance()
val fakeClassVersion = fakeClass.toString
assert(fakeClassVersion === "2")
}

test("child first can fall back") {
val parentLoader = new URLClassLoader(urls2, null)
val classLoader = new FlexibleExecutorClassLoader(url1, parentLoader, true)
val fakeClass = classLoader.loadClass("org.apache.spark.test.FakeClass3").newInstance()
val fakeClass = classLoader.loadClass("ReplFakeClass3").newInstance()
val fakeClassVersion = fakeClass.toString
assert(fakeClassVersion === "2")
}
Expand All @@ -56,7 +69,7 @@ class ExecutorClassLoaderSuite extends FunSuite {
val parentLoader = new URLClassLoader(urls2, null)
val classLoader = new FlexibleExecutorClassLoader(url1, parentLoader, true)
intercept[java.lang.ClassNotFoundException] {
classLoader.loadClass("org.apache.spark.test.FakeClassDoesNotExist").newInstance()
classLoader.loadClass("ReplFakeClassDoesNotExist").newInstance()
}
}

Expand Down

0 comments on commit 644719f

Please sign in to comment.