What this is
A prerequisite for removing gluten-ut/spark33 under #12807. It is not a bug, it is an unanswered question that has to be settled before the module goes away, otherwise the removal silently drops test coverage.
The gap
#12840 migrated the Spark 3.3-only coverage it could enumerate, at three granularities: whole suites, .sql files in VeloxSQLQueryTestSettings, and Gluten-authored cases (8 names out of 286). None of those is the risky one.
What it did not cover is the vanilla test(...) cases that gluten-ut inherits from Spark's own suites. Those are governed entirely by the settings files, and gluten-ut/spark33's carry hundreds of .exclude entries. Whether the complement, that is the set of vanilla cases actually enabled on 3.3, is a subset of what 3.4/3.5/4.0/4.1 enable, is unanswered. If some vanilla case runs on 3.3 and is excluded in all four surviving modules, deleting the module removes the only place it runs, and nothing in the diff will look like a deletion of coverage.
How to answer it
Mechanical, once someone writes the script. For each backend, compute the enabled-case set per version module from VeloxTestSettings / ClickHouseTestSettings: for every enableSuite, resolve whether the block is in include mode or exclude mode (BackendTestSettings.shouldRun throws if both are non-empty, so each block is one or the other), then apply the prefix and name rules from BackendTestSettings to the parent Spark suite's case list. Diff spark33's set against the union of the four surviving versions.
Two details that make a naive diff wrong. excludeGlutenTest(name) and includeGlutenTest(name) prepend the "Gluten - " prefix while bare exclude / include do not, so a name comparison has to normalise that. And excludeByPrefix matches with startsWith, so its effect depends on the parent suite's case names in that specific Spark version.
Anything the diff turns up either gets migrated the way #12840 migrated the rest, or gets an explicit "not worth keeping" note, before the module is deleted.
What this is
A prerequisite for removing
gluten-ut/spark33under #12807. It is not a bug, it is an unanswered question that has to be settled before the module goes away, otherwise the removal silently drops test coverage.The gap
#12840 migrated the Spark 3.3-only coverage it could enumerate, at three granularities: whole suites,
.sqlfiles inVeloxSQLQueryTestSettings, and Gluten-authored cases (8 names out of 286). None of those is the risky one.What it did not cover is the vanilla
test(...)cases thatgluten-utinherits from Spark's own suites. Those are governed entirely by the settings files, andgluten-ut/spark33's carry hundreds of.excludeentries. Whether the complement, that is the set of vanilla cases actually enabled on 3.3, is a subset of what 3.4/3.5/4.0/4.1 enable, is unanswered. If some vanilla case runs on 3.3 and is excluded in all four surviving modules, deleting the module removes the only place it runs, and nothing in the diff will look like a deletion of coverage.How to answer it
Mechanical, once someone writes the script. For each backend, compute the enabled-case set per version module from
VeloxTestSettings/ClickHouseTestSettings: for everyenableSuite, resolve whether the block is in include mode or exclude mode (BackendTestSettings.shouldRunthrows if both are non-empty, so each block is one or the other), then apply the prefix and name rules fromBackendTestSettingsto the parent Spark suite's case list. Diff spark33's set against the union of the four surviving versions.Two details that make a naive diff wrong.
excludeGlutenTest(name)andincludeGlutenTest(name)prepend the"Gluten - "prefix while bareexclude/includedo not, so a name comparison has to normalise that. AndexcludeByPrefixmatches withstartsWith, so its effect depends on the parent suite's case names in that specific Spark version.Anything the diff turns up either gets migrated the way #12840 migrated the rest, or gets an explicit "not worth keeping" note, before the module is deleted.