Skip to content

[Subtask] Split core tests into explicit database lanes #13516

Closed

Description

@nevzheng

Describe the subtask

Split core test execution into four explicit, independent suites: unit, H2, MySQL, and PostgreSQL. This is the first optimization under the database-test epic and establishes clear ownership and evidence before adding finer-grained concurrency.

The change should:

  • classify the cross-backend contract explicitly while preserving legacy :core:test behavior for local compatibility;
  • add dedicated Gradle tasks for unit, H2, MySQL, and PostgreSQL execution;
  • keep every database lane sequential until its mutable state is isolated;
  • publish distinct JUnit result and timing artifacts for each lane;
  • reconcile normalized test-identity multisets across H2, MySQL, and PostgreSQL;
  • merge raw JaCoCo execution data before generating one combined core coverage report; and
  • integrate with the build-sharding direction in [#13459] improvement(ci): Shard long-running CI test suites #13495 without duplicating the unit and H2 suites.

Acceptance criteria:

  • Each test belongs to the unit suite or the explicit database contract, without duplicate execution across lanes.
  • H2, MySQL, and PostgreSQL lanes select exactly one backend and fail closed on unsupported selectors.
  • The three database lanes expose the same normalized test-identity multiset.
  • CI artifacts make lane identity, results, duration, and coverage inputs independently inspectable.
  • The combined core coverage report is generated from the union of raw execution data, not by adding per-lane XML counters.
  • Legacy :core:test selection remains compatible during the cutover.

Related public work: #13459, #13495, #13471, and #12584.

Parent issue

#13515

Activity

  1. added a commit that references this issue on Oct 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

2.0.0Release v2.0.0subtaskSubtasks of umbrella issue

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions