summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-15 20:38:32 +0900
committerAdam Malczewski <[email protected]>2026-06-15 20:38:32 +0900
commitb2b1a30762f2bc9c6319f93644b0c62c5e8179ee (patch)
tree0f5c12a1ac211a9efdd491c0edc2ccdc731078e3
parent12326b449e6a9cdabe20acff19fbd3e4595f0c06 (diff)
downloadunbox-feat/rml-compositing.tar.gz
unbox-feat/rml-compositing.zip
rules: add test-determinism (condition-based client pumping, no thread+sleep)feat/rml-compositing
Crystallizes the scar behind the Wave-1b de-flake: headless integration tests must drive a real client by condition-based event-loop pumping, never a free- running thread + time budget (which starves under load -> sentinel reads / silent skips / drifting assertion count).
-rw-r--r--.unbox/rules/test-determinism.md7
1 files changed, 7 insertions, 0 deletions
diff --git a/.unbox/rules/test-determinism.md b/.unbox/rules/test-determinism.md
new file mode 100644
index 0000000..d734bd6
--- /dev/null
+++ b/.unbox/rules/test-determinism.md
@@ -0,0 +1,7 @@
+# test-determinism
+Headless integration tests that drive a real Wayland client MUST advance it by
+CONDITION-BASED cooperative event-loop pumping (round-trip / dispatch until the
+expected state is observed, with a bounded spin) — never a free-running client
+thread + sleep/time budget. The latter starves under load and flakes: assertions
+read sentinels or the case silently skips, so the doctest assertion COUNT drifts.
+A correct test has an identical assertion count on every run.