mirror of
https://github.com/storytold/effectcraft.git
synced 2026-10-24 10:09:32 -06:00
CI: dev-profile gate, one test binary per crate, nextest, line tables only (#2235)
* Dev profile: line tables only for workspace crates, no debug info for dependencies * xtask ci: dev-profile gate, nextest, tests without examples, wasm --keep-going * One integration-test binary per crate * xtask ci: run effectcraft-gpu's shared-device tests in one cargo test process * xtask ci: run every stage and report all failures * xtask ci: name the stage type (clippy type_complexity) * xtask ci: run every test pass and report all failures * cargo fmt
This commit is contained in:
+8
-1
@@ -5,6 +5,13 @@ cargo test --workspace # everything
|
||||
cargo xtask ci # fmt, clippy -D warnings, tests, layers, assets, wasm
|
||||
```
|
||||
|
||||
`cargo xtask ci` builds in the dev profile and runs the tests with `cargo nextest run` (plus
|
||||
`cargo test --doc`) when `cargo-nextest` is installed, and with `cargo test` otherwise.
|
||||
|
||||
Each crate with several integration-test files has one test binary, `tests/it/main.rs`, whose
|
||||
modules are the files in `tests/it/`. Run one file with `cargo test -p <crate> --test it <module>::`
|
||||
or `cargo nextest run -p <crate> -E 'binary(it) and test(/^<module>::/)'`.
|
||||
|
||||
## What the tests cover
|
||||
|
||||
- **Engine commands** (`crates/engine/src/tests*.rs`): every command family, including undo and
|
||||
@@ -16,7 +23,7 @@ cargo xtask ci # fmt, clippy -D warnings, tests, layers, assets, was
|
||||
- **Effects** (`crates/effects`): each effect has a determinism test and at least one behaviour
|
||||
test (identity at neutral settings, known pixel results, or simulations giving the same frame
|
||||
whether you seek straight to it or play up to it). A registry-wide test checks that effects
|
||||
which read the clock are declared time-dependent. `crates/effects/tests/sim_golden.rs` pins
|
||||
which read the clock are declared time-dependent. `crates/effects/tests/it/sim_golden.rs` pins
|
||||
exact pixel hashes of the simulation effects the GPU shares plans with (CC Rainfall … Card
|
||||
Wipe) at several settings, times, bit depths and resolutions, so any change to their CPU output
|
||||
fails (re-pin with `SIM_GOLDEN_PRINT=1` after an intended change; pinned for aarch64 macOS,
|
||||
|
||||
Reference in New Issue
Block a user