Skip to content

[VL] Before removing gluten-ut/spark33: confirm its enabled vanilla test set is a subset of 3.4+ #12863

Description

@LuciferYang

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions