diff --git a/src/test/scala/yaooqinn/kyuubi/SparkSessionReflectionSuite.scala b/src/test/scala/yaooqinn/kyuubi/SparkSessionReflectionSuite.scala new file mode 100644 index 000000000..157efb676 --- /dev/null +++ b/src/test/scala/yaooqinn/kyuubi/SparkSessionReflectionSuite.scala @@ -0,0 +1,42 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package yaooqinn.kyuubi + +import org.apache.spark.{SparkConf, SparkContext, SparkFunSuite} +import org.apache.spark.sql.SparkSession + +import yaooqinn.kyuubi.server.KyuubiServer +import yaooqinn.kyuubi.utils.ReflectUtils + +class SparkSessionReflectionSuite extends SparkFunSuite { + + test("SparkSession initialization with sc in reflecting") { + val conf = new SparkConf(loadDefaults = true).setMaster("local").setAppName("sc_init") + KyuubiServer.setupCommonConfig(conf) + val sc = ReflectUtils + .newInstance(classOf[SparkContext].getName, Seq(classOf[SparkConf]), Seq(conf)) + .asInstanceOf[SparkContext] + + val ss = ReflectUtils.newInstance( + classOf[SparkSession].getName, + Seq(classOf[SparkContext]), + Seq(sc)).asInstanceOf[SparkSession] + assert(ss.isInstanceOf[SparkSession]) + ss.stop() + } +}