nevzheng opened a new issue, #13515: URL: https://github.com/apache/gravitino/issues/13515
### Describe the proposal Database-backed tests in `core` currently combine several execution concerns: unit tests, default H2 coverage, optional MySQL and PostgreSQL coverage, and broad Docker-test selection. This makes it difficult to see which backend ran, verify that coverage is complete, reuse fixtures safely, or scale CI without duplicate or unsafe execution. This epic will make database coverage explicit before adding concurrency. The first task will split `core` into explicit unit, H2, MySQL, and PostgreSQL suites with independent CI lanes, backend-qualified test identities, distinct result and timing artifacts, and raw JaCoCo execution-data fan-in. Follow-up work will improve state isolation and fixture reuse before introducing finer sharding or bounded JVM forks. Guardrails: - Preserve existing test coverage and reconcile backend-qualified identities during the cutover. - Keep execution sequential within each database lane until shared schema and process-global state are isolated. - Do not use blanket `maxParallelForks` as a substitute for test isolation. - Require repeated timing, stability, and coverage evidence for each optimization. Completion conditions: - CI reports unit, H2, MySQL, and PostgreSQL results independently. - Reconciliation detects missing lanes, unexpected duplicates within a lane, and coverage loss relative to the pre-cutover baseline. - Raw JaCoCo execution data is merged before generating one combined `core` coverage report. - Shared database state and reusable fixtures have explicit ownership and lifecycle rules. - Any later sharding or bounded forking demonstrates a repeatable improvement without increased flakiness. Related public work: #13459, #13495, #13471, #12583, #12584, #6505, and #1198. ### Task list - [ ] Split `core` tests into explicit unit, H2, MySQL, and PostgreSQL lanes. A subtask will track this first change. - [ ] Isolate mutable database, schema, and process-global test state and remove hidden ordering dependencies. - [ ] Reuse backend fixtures once per test class for entity-storage tests tracked by #6505. - [ ] Generalize safe container and fixture reuse across compatible database-test groups. - [ ] Add backend-by-batch sharding while keeping execution sequential within each batch. - [ ] Evaluate bounded JVM forks only after isolation, reuse, and sharding, using repeated timing and reliability evidence. -- 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. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
