add more test
This commit is contained in:
parent
31847bc230
commit
19c95d25da
@ -22,7 +22,7 @@ import java.security.PrivilegedExceptionAction
|
|||||||
import java.util.concurrent.TimeUnit
|
import java.util.concurrent.TimeUnit
|
||||||
|
|
||||||
import scala.collection.mutable.{HashSet => MHSet}
|
import scala.collection.mutable.{HashSet => MHSet}
|
||||||
import scala.concurrent.{Await, Promise, TimeoutException}
|
import scala.concurrent.{Await, Promise}
|
||||||
import scala.concurrent.ExecutionContext.Implicits.global
|
import scala.concurrent.ExecutionContext.Implicits.global
|
||||||
import scala.concurrent.duration.Duration
|
import scala.concurrent.duration.Duration
|
||||||
import scala.util.control.NonFatal
|
import scala.util.control.NonFatal
|
||||||
|
|||||||
@ -17,7 +17,8 @@
|
|||||||
|
|
||||||
package yaooqinn.kyuubi.spark
|
package yaooqinn.kyuubi.spark
|
||||||
|
|
||||||
import scala.concurrent.TimeoutException
|
import scala.concurrent.{Promise, TimeoutException}
|
||||||
|
import scala.concurrent.ExecutionContext.Implicits.global
|
||||||
|
|
||||||
import org.apache.hadoop.security.UserGroupInformation
|
import org.apache.hadoop.security.UserGroupInformation
|
||||||
import org.apache.spark._
|
import org.apache.spark._
|
||||||
@ -26,6 +27,7 @@ import org.apache.spark.sql.catalyst.analysis.NoSuchDatabaseException
|
|||||||
|
|
||||||
import yaooqinn.kyuubi.KyuubiSQLException
|
import yaooqinn.kyuubi.KyuubiSQLException
|
||||||
import yaooqinn.kyuubi.server.KyuubiServer
|
import yaooqinn.kyuubi.server.KyuubiServer
|
||||||
|
import yaooqinn.kyuubi.ui.KyuubiServerMonitor
|
||||||
import yaooqinn.kyuubi.utils.ReflectUtils
|
import yaooqinn.kyuubi.utils.ReflectUtils
|
||||||
|
|
||||||
class SparkSessionWithUGISuite extends SparkFunSuite {
|
class SparkSessionWithUGISuite extends SparkFunSuite {
|
||||||
@ -68,11 +70,17 @@ class SparkSessionWithUGISuite extends SparkFunSuite {
|
|||||||
val se = e.getSuppressed.head
|
val se = e.getSuppressed.head
|
||||||
assert(se.isInstanceOf[SparkException])
|
assert(se.isInstanceOf[SparkException])
|
||||||
assert(se.getMessage.startsWith("Only one SparkContext"))
|
assert(se.getMessage.startsWith("Only one SparkContext"))
|
||||||
|
assert(sparkSessionWithUGI.sparkSession === null)
|
||||||
|
assert(System.getProperty("SPARK_YARN_MODE") === null)
|
||||||
|
assert(SparkSessionCacheManager.get.getAndIncrease(userName1).isEmpty)
|
||||||
}
|
}
|
||||||
|
|
||||||
test("test init failed with no such database") {
|
test("test init failed with no such database") {
|
||||||
val sparkSessionWithUGI = new SparkSessionWithUGI(user, conf)
|
val sparkSessionWithUGI = new SparkSessionWithUGI(user, conf)
|
||||||
intercept[NoSuchDatabaseException](sparkSessionWithUGI.init(Map("use:database" -> "fakedb")))
|
intercept[NoSuchDatabaseException](sparkSessionWithUGI.init(Map("use:database" -> "fakedb")))
|
||||||
|
assert(ReflectUtils.getFieldValue(sparkSessionWithUGI,
|
||||||
|
"yaooqinn$kyuubi$spark$SparkSessionWithUGI$$initialDatabase") === Some("use fakedb"))
|
||||||
|
assert(SparkSessionCacheManager.get.getAndIncrease(userName).nonEmpty)
|
||||||
}
|
}
|
||||||
|
|
||||||
test("test init success with empty session conf") {
|
test("test init success with empty session conf") {
|
||||||
@ -105,6 +113,7 @@ class SparkSessionWithUGISuite extends SparkFunSuite {
|
|||||||
assert(sparkSessionWithUGI.sparkSession.conf.get("spark.foo") === "bar")
|
assert(sparkSessionWithUGI.sparkSession.conf.get("spark.foo") === "bar")
|
||||||
assert(sparkSessionWithUGI.sparkSession.conf.get("spark.hadoop.foo") === "bar")
|
assert(sparkSessionWithUGI.sparkSession.conf.get("spark.hadoop.foo") === "bar")
|
||||||
assert(!sparkSessionWithUGI.sparkSession.sparkContext.getConf.contains(KyuubiSparkUtil.KEYTAB))
|
assert(!sparkSessionWithUGI.sparkSession.sparkContext.getConf.contains(KyuubiSparkUtil.KEYTAB))
|
||||||
|
assert(KyuubiServerMonitor.getListener(userName1).nonEmpty)
|
||||||
sparkSessionWithUGI.sparkSession.stop()
|
sparkSessionWithUGI.sparkSession.stop()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -144,4 +153,17 @@ class SparkSessionWithUGISuite extends SparkFunSuite {
|
|||||||
test("testIsPartiallyConstructed") {
|
test("testIsPartiallyConstructed") {
|
||||||
assert(!SparkSessionWithUGI.isPartiallyConstructed(userName))
|
assert(!SparkSessionWithUGI.isPartiallyConstructed(userName))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
test("stop sparkcontext") {
|
||||||
|
val sparkSessionWithUGI = new SparkSessionWithUGI(user, conf)
|
||||||
|
sparkSessionWithUGI.init(Map.empty)
|
||||||
|
val promise = ReflectUtils.getFieldValue(sparkSessionWithUGI,
|
||||||
|
"yaooqinn$kyuubi$spark$SparkSessionWithUGI$$promisedSparkContext")
|
||||||
|
.asInstanceOf[Promise[SparkContext]]
|
||||||
|
val future = promise.future
|
||||||
|
ReflectUtils.invokeMethod(sparkSessionWithUGI, "stopContext")
|
||||||
|
future.foreach { sc =>
|
||||||
|
assert(sc.isStopped)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user