Ngone51 commented on a change in pull request #28917:
URL: https://github.com/apache/spark/pull/28917#discussion_r446730477



##########
File path: 
core/src/test/scala/org/apache/spark/scheduler/DAGSchedulerSuite.scala
##########
@@ -278,7 +280,26 @@ class DAGSchedulerSuite extends SparkFunSuite with 
LocalSparkContext with TimeLi
 
   override def beforeEach(): Unit = {
     super.beforeEach()
-    init(new SparkConf())
+  }
+
+  override protected def test(testName: String, testTags: Tag*)(testFun: => 
Any)
+      (implicit pos: Position): Unit = {
+    testWithSparkConf(testName, testTags: _*)()(testFun)(pos)
+  }
+
+  private def testWithSparkConf(testName: String, testTags: Tag*)

Review comment:
       Shall we simulate the usage of `withSQLConf` instead of integrating the 
confs with `test()`?

##########
File path: 
core/src/test/scala/org/apache/spark/scheduler/DAGSchedulerSuite.scala
##########
@@ -278,7 +280,26 @@ class DAGSchedulerSuite extends SparkFunSuite with 
LocalSparkContext with TimeLi
 
   override def beforeEach(): Unit = {
     super.beforeEach()
-    init(new SparkConf())
+  }
+
+  override protected def test(testName: String, testTags: Tag*)(testFun: => 
Any)
+      (implicit pos: Position): Unit = {
+    testWithSparkConf(testName, testTags: _*)()(testFun)(pos)
+  }
+
+  private def testWithSparkConf(testName: String, testTags: Tag*)
+      (pairs: (String, String)*)(testFun: => Any)(implicit pos: Position): 
Unit = {
+    super.test(testName, testTags: _*) {
+      withSparkConf(pairs: _*)(testFun)
+    }
+  }
+
+  /** Sets all configurations specified in `pairs`, calls `init`, and then 
calls `testFun` */
+  private def withSparkConf(pairs: (String, String)*)(testFun: => Any): Unit = 
{
+    val conf = new SparkConf()
+    pairs.foreach(kv => conf.set(kv._1, kv._2))
+    init(conf)

Review comment:
       `init()` is specific to `DAGSchedulerSuite`, we should separate it from 
the test framework.

##########
File path: 
core/src/test/scala/org/apache/spark/scheduler/DAGSchedulerSuite.scala
##########
@@ -278,7 +280,26 @@ class DAGSchedulerSuite extends SparkFunSuite with 
LocalSparkContext with TimeLi
 
   override def beforeEach(): Unit = {
     super.beforeEach()
-    init(new SparkConf())
+  }
+
+  override protected def test(testName: String, testTags: Tag*)(testFun: => 
Any)
+      (implicit pos: Position): Unit = {
+    testWithSparkConf(testName, testTags: _*)()(testFun)(pos)
+  }
+
+  private def testWithSparkConf(testName: String, testTags: Tag*)
+      (pairs: (String, String)*)(testFun: => Any)(implicit pos: Position): 
Unit = {
+    super.test(testName, testTags: _*) {
+      withSparkConf(pairs: _*)(testFun)
+    }
+  }
+
+  /** Sets all configurations specified in `pairs`, calls `init`, and then 
calls `testFun` */
+  private def withSparkConf(pairs: (String, String)*)(testFun: => Any): Unit = 
{

Review comment:
       For `test()`, `withSparkConf()`, shall we extract them into a base 
class? I guess they could be used by other test suites as well? 




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to