What problem does it solve?
Running tests in the XTDB repository involves non-obvious rules — delegating to the gradle-tests agent, respecting the mid-run compile freeze, choosing the right Gradle task and iteration property, and handling simulation tests and golden fixtures — and getting any of them wrong produces bogus failures or false green results.
Core Features & Use Cases
- Test delegation rules: All test runs go through the gradle-tests agent with explicit no-edit instructions, one concurrent run maximum, and invalidated runs stopped immediately.
- Build-phase freeze mechanics: Defines which files are frozen during compilation, how to split compile and test phases to keep working, and why module Clojure sources stay live on the classpath.
- Task and filter reference: Covers Gradle test tasks (test, integration-test, property-test, kafka-test, nightly-test), module addressing, --tests patterns with underscores, and the two independent iteration knobs (-Piterations vs -PsimulationIterations).
- Failure and fixture handling: Enforces the "you broke it" policy with a narrow flaky-issue carve-out, and documents the arrow-edn golden fixture regeneration workflow with its gotchas.
- Use Case: After changing compaction code, you learn that simulation tests are invisible to ./gradlew test, so you run ./gradlew property-test with -PsimulationIterations=500 and verify the actual iteration count in the output.
Quick Start
Read this skill before running or delegating any XTDB test run, then delegate the run to the gradle-tests agent with an explicit instruction not to modify any files.