|
1 | 1 | [profile.default] |
2 | | -# Serial group for crash / recovery tests (used by later slices). |
| 2 | +# Everything not pinned to a group below runs at full parallelism. |
3 | 3 | test-threads = "num-cpus" |
4 | 4 |
|
| 5 | +# ── Invariant-critical, scheduling-sensitive suites run one at a time ───────── |
| 6 | +# These exercise multi-phase async flows where correctness depends on precise |
| 7 | +# task/commit ordering: rekey epoch transitions, crash/recovery replay, the |
| 8 | +# apply-journal, GC reader-pin drains, snapshot/compaction publication, and the |
| 9 | +# nonce/counter anchors. Under heavy CPU contention (a fully parallel CI runner) |
| 10 | +# their internal task scheduling shifts and latent ordering races surface as |
| 11 | +# false failures — e.g. a rekey aborting with an unverifiable-header corruption. |
| 12 | +# Pinning them to a single-threaded group removes that contention so a failure |
| 13 | +# here means a real invariant break, not a co-tenant starving the runtime. |
5 | 14 | [[profile.default.overrides]] |
6 | | -filter = "test(/crash/)" |
| 15 | +filter = """ |
| 16 | + binary(crash_basic) |
| 17 | + | binary(recovery_basic) |
| 18 | + | binary(rekey_basic) |
| 19 | + | binary(fsck_deep) |
| 20 | + | binary(durability) |
| 21 | + | binary(snapshot_basic) |
| 22 | + | binary(compaction_basic) |
| 23 | + | binary(compaction_incremental) |
| 24 | + | binary(deferred_free_reclaim) |
| 25 | + | binary(reader_stall_policy) |
| 26 | + | (binary(pagedb) & ( |
| 27 | + test(/crash/) | test(/recover/) | test(/rekey/) |
| 28 | + | test(/anchor/) | test(/torn/) | test(/journal/) | test(/replay/) |
| 29 | + )) |
| 30 | +""" |
7 | 31 | test-group = "serial" |
8 | 32 |
|
| 33 | +# ── Heavy real-disk suites throttled to avoid I/O oversubscription ─────────── |
| 34 | +# io_uring / tokio-fs VFS coverage and the randomized structural-stress reopen |
| 35 | +# cycles do real fsync/rename traffic and each run for tens of seconds. They are |
| 36 | +# independent (own temp dirs), so they need not be single-file, but letting the |
| 37 | +# whole fleet hit the disk at once inflates latency and can trip timing-based |
| 38 | +# assertions. A small cap keeps them overlapping without saturating the device. |
| 39 | +[[profile.default.overrides]] |
| 40 | +filter = """ |
| 41 | + binary(vfs_iouring) |
| 42 | + | binary(vfs_tokio) |
| 43 | + | binary(structural_repro) |
| 44 | +""" |
| 45 | +test-group = "disk-heavy" |
| 46 | + |
9 | 47 | [test-groups] |
10 | 48 | serial = { max-threads = 1 } |
| 49 | +disk-heavy = { max-threads = 2 } |
0 commit comments