You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spark.apache.org by ru...@apache.org on 2026/04/27 03:36:14 UTC
(spark) branch master updated: [SPARK-56609][SQL][TESTS] Remove redundant SparkFunSuite mixin from QueryTest/PlanTest subclasses
This is an automated email from the ASF dual-hosted git repository.
zhengruifeng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/spark.git
The following commit(s) were added to refs/heads/master by this push:
new 31234ccdbe90 [SPARK-56609][SQL][TESTS] Remove redundant SparkFunSuite mixin from QueryTest/PlanTest subclasses
31234ccdbe90 is described below
commit 31234ccdbe90c3157d1749a23dc8376731558104
Author: Ruifeng Zheng <ru...@apache.org>
AuthorDate: Mon Apr 27 11:35:54 2026 +0800
[SPARK-56609][SQL][TESTS] Remove redundant SparkFunSuite mixin from QueryTest/PlanTest subclasses
### What changes were proposed in this pull request?
Since `QueryTest` extends `SparkFunSuite with QueryTestBase with PlanTest`, and `PlanTest` extends `SparkFunSuite with PlanTestBase`, mixing `SparkFunSuite` in again alongside `QueryTest` or `PlanTest` in the `extends` list is a no-op.
Linearization:
```
QueryTest -> SparkFunSuite
\> QueryTestBase
\> PlanTest -> SparkFunSuite
\> PlanTestBase
PlanTest -> SparkFunSuite
\> PlanTestBase
```
Cleanup across 7 test files in `sql-catalyst`, `sql-core`, and `sql-hive`:
- `extends SparkFunSuite with QueryTest` -> `extends QueryTest` (3 files)
- `MapStatusEndToEndSuite`
- `ExecutorSideSQLConfSuite`
- `ParquetCommitterSuite` (also has `with LocalSparkContext`, retained)
- `extends SparkFunSuite with PlanTest` -> `extends PlanTest` (3 files)
- `ConstraintPropagationSuite`
- `ExtractPredicatesWithinOutputSetSuite`
- `FiltersSuite`
- `extends SparkFunSuite with SQLHelper with AdaptiveSparkPlanHelper with PlanTest` -> `extends PlanTest with SQLHelper with AdaptiveSparkPlanHelper` (1 file)
- `SparkSessionExtensionSuite`
Also removed the now-unused `SparkFunSuite` imports.
### Why are the changes needed?
Follow-up to [SPARK-56591](https://issues.apache.org/jira/browse/SPARK-56591), which removed the analogous `QueryTest with SharedSparkSession` redundancy. Keeps the `extends` clauses minimal and removes imports that no longer serve any purpose.
### Does this PR introduce _any_ user-facing change?
No. Test-only change.
### How was this patch tested?
`dev/scalastyle` passes. Existing tests in the affected suites exercise the unchanged test logic.
### Was this patch authored or co-authored using generative AI tooling?
Generated-by: Claude Code (model: claude-opus-4-7)
Closes #55529 from zhengruifeng/remove-redundant-sparkfunsuite-mixin.
Authored-by: Ruifeng Zheng <ru...@apache.org>
Signed-off-by: Ruifeng Zheng <ru...@apache.org>
---
.../catalyst/expressions/ExtractPredicatesWithinOutputSetSuite.scala | 3 +--
.../apache/spark/sql/catalyst/plans/ConstraintPropagationSuite.scala | 3 +--
.../src/test/scala/org/apache/spark/sql/MapStatusEndToEndSuite.scala | 4 ++--
.../test/scala/org/apache/spark/sql/SparkSessionExtensionSuite.scala | 5 ++---
.../sql/execution/datasources/parquet/ParquetCommitterSuite.scala | 5 ++---
.../org/apache/spark/sql/internal/ExecutorSideSQLConfSuite.scala | 4 ++--
.../test/scala/org/apache/spark/sql/hive/client/FiltersSuite.scala | 3 +--
7 files changed, 11 insertions(+), 16 deletions(-)
diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/ExtractPredicatesWithinOutputSetSuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/ExtractPredicatesWithinOutputSetSuite.scala
index 10f9a88c429c..1a5dcd9a4872 100644
--- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/ExtractPredicatesWithinOutputSetSuite.scala
+++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/ExtractPredicatesWithinOutputSetSuite.scala
@@ -17,12 +17,11 @@
package org.apache.spark.sql.catalyst.expressions
-import org.apache.spark.SparkFunSuite
import org.apache.spark.sql.catalyst.dsl.expressions._
import org.apache.spark.sql.catalyst.plans.PlanTest
import org.apache.spark.sql.types.BooleanType
-class ExtractPredicatesWithinOutputSetSuite extends SparkFunSuite with PlanTest {
+class ExtractPredicatesWithinOutputSetSuite extends PlanTest {
private val a = AttributeReference("A", BooleanType)(exprId = ExprId(1))
private val b = AttributeReference("B", BooleanType)(exprId = ExprId(2))
private val c = AttributeReference("C", BooleanType)(exprId = ExprId(3))
diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/plans/ConstraintPropagationSuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/plans/ConstraintPropagationSuite.scala
index fb5ab31350b3..5f6084287815 100644
--- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/plans/ConstraintPropagationSuite.scala
+++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/plans/ConstraintPropagationSuite.scala
@@ -19,7 +19,6 @@ package org.apache.spark.sql.catalyst.plans
import java.util.TimeZone
-import org.apache.spark.SparkFunSuite
import org.apache.spark.sql.catalyst.analysis._
import org.apache.spark.sql.catalyst.dsl.expressions._
import org.apache.spark.sql.catalyst.dsl.plans._
@@ -28,7 +27,7 @@ import org.apache.spark.sql.catalyst.plans.logical._
import org.apache.spark.sql.internal.SQLConf
import org.apache.spark.sql.types.{DataType, DoubleType, IntegerType, LongType, StringType}
-class ConstraintPropagationSuite extends SparkFunSuite with PlanTest {
+class ConstraintPropagationSuite extends PlanTest {
private def resolveColumn(tr: LocalRelation, columnName: String): Expression =
resolveColumn(tr.analyze, columnName)
diff --git a/sql/core/src/test/scala/org/apache/spark/sql/MapStatusEndToEndSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/MapStatusEndToEndSuite.scala
index b9e3356122d7..0708b2c93921 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/MapStatusEndToEndSuite.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/MapStatusEndToEndSuite.scala
@@ -17,11 +17,11 @@
package org.apache.spark.sql
-import org.apache.spark.{MapOutputTrackerMaster, SparkFunSuite}
+import org.apache.spark.MapOutputTrackerMaster
import org.apache.spark.sql.classic.SparkSession
import org.apache.spark.sql.internal.SQLConf
-class MapStatusEndToEndSuite extends SparkFunSuite with QueryTest {
+class MapStatusEndToEndSuite extends QueryTest {
override def spark: SparkSession = SparkSession.builder()
.master("local")
.config(SQLConf.LEAF_NODE_DEFAULT_PARALLELISM.key, value = 5)
diff --git a/sql/core/src/test/scala/org/apache/spark/sql/SparkSessionExtensionSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/SparkSessionExtensionSuite.scala
index 5a25e52a1a43..bfcf583a7051 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/SparkSessionExtensionSuite.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/SparkSessionExtensionSuite.scala
@@ -21,7 +21,7 @@ import java.util.{Locale, UUID}
import scala.collection.mutable.ListBuffer
import scala.concurrent.Future
-import org.apache.spark.{MapOutputStatistics, SparkFunSuite, TaskContext}
+import org.apache.spark.{MapOutputStatistics, TaskContext}
import org.apache.spark.broadcast.Broadcast
import org.apache.spark.internal.Logging
import org.apache.spark.rdd.RDD
@@ -58,8 +58,7 @@ import org.apache.spark.unsafe.types.UTF8String
/**
* Test cases for the [[SparkSessionExtensions]].
*/
-class SparkSessionExtensionSuite extends SparkFunSuite with SQLHelper with AdaptiveSparkPlanHelper
- with PlanTest {
+class SparkSessionExtensionSuite extends PlanTest with SQLHelper with AdaptiveSparkPlanHelper {
private def create(
builder: SparkSessionExtensionsProvider): Seq[SparkSessionExtensionsProvider] = Seq(builder)
diff --git a/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetCommitterSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetCommitterSuite.scala
index 9cc0ec4ce91a..d03209c7c37f 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetCommitterSuite.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetCommitterSuite.scala
@@ -23,7 +23,7 @@ import org.apache.hadoop.mapreduce.{JobContext, OutputCommitter, TaskAttemptCont
import org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter
import org.apache.parquet.hadoop.{ParquetOutputCommitter, ParquetOutputFormat}
-import org.apache.spark.{LocalSparkContext, SparkFunSuite}
+import org.apache.spark.LocalSparkContext
import org.apache.spark.sql.QueryTest
import org.apache.spark.sql.classic.SparkSession
import org.apache.spark.sql.internal.SQLConf
@@ -33,8 +33,7 @@ import org.apache.spark.tags.ExtendedSQLTest
* Test logic related to choice of output committers.
*/
@ExtendedSQLTest
-class ParquetCommitterSuite extends SparkFunSuite with QueryTest
- with LocalSparkContext {
+class ParquetCommitterSuite extends QueryTest with LocalSparkContext {
private val PARQUET_COMMITTER = classOf[ParquetOutputCommitter].getCanonicalName
diff --git a/sql/core/src/test/scala/org/apache/spark/sql/internal/ExecutorSideSQLConfSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/internal/ExecutorSideSQLConfSuite.scala
index 4f0f3774dc9c..9eb774d5c5e8 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/internal/ExecutorSideSQLConfSuite.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/internal/ExecutorSideSQLConfSuite.scala
@@ -21,7 +21,7 @@ import java.util.UUID
import org.scalatest.Assertions._
-import org.apache.spark.{SparkFunSuite, SparkNoSuchElementException, TaskContext}
+import org.apache.spark.{SparkNoSuchElementException, TaskContext}
import org.apache.spark.rdd.RDD
import org.apache.spark.sql.QueryTest
import org.apache.spark.sql.catalyst.InternalRow
@@ -35,7 +35,7 @@ import org.apache.spark.sql.functions.col
import org.apache.spark.tags.ExtendedSQLTest
@ExtendedSQLTest
-class ExecutorSideSQLConfSuite extends SparkFunSuite with QueryTest {
+class ExecutorSideSQLConfSuite extends QueryTest {
import testImplicits._
protected var spark: SparkSession = null
diff --git a/sql/hive/src/test/scala/org/apache/spark/sql/hive/client/FiltersSuite.scala b/sql/hive/src/test/scala/org/apache/spark/sql/hive/client/FiltersSuite.scala
index 27b0276fa63b..f1a402e7b8f6 100644
--- a/sql/hive/src/test/scala/org/apache/spark/sql/hive/client/FiltersSuite.scala
+++ b/sql/hive/src/test/scala/org/apache/spark/sql/hive/client/FiltersSuite.scala
@@ -23,7 +23,6 @@ import java.util.Collections
import org.apache.hadoop.hive.metastore.api.FieldSchema
import org.apache.hadoop.hive.serde.serdeConstants
-import org.apache.spark.SparkFunSuite
import org.apache.spark.sql.catalyst.dsl.expressions._
import org.apache.spark.sql.catalyst.expressions._
import org.apache.spark.sql.catalyst.plans.PlanTest
@@ -35,7 +34,7 @@ import org.apache.spark.unsafe.types.UTF8String
* A set of tests for the filter conversion logic used when pushing partition pruning into the
* metastore
*/
-class FiltersSuite extends SparkFunSuite with PlanTest {
+class FiltersSuite extends PlanTest {
private val shim = new Shim_v2_0
private val testTable = new org.apache.hadoop.hive.ql.metadata.Table("default", "test")
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@spark.apache.org
For additional commands, e-mail: commits-help@spark.apache.org