From the rework of #310 (#310 (comment)): TestDiscriminatorAnswersWithinTheTimeLimitWhileEveryOutsideSourceHangs checks the answer time against answerTimeLimit on the wall clock. On this host, often at several times its core count, that check can fail on load alone, as the sixteen-thousand-cookie test did in #308.
Definition of done, one PR into next, test files only:
The test still shows that the daemon answers within its time limit while every outside source hangs, but no longer fails because the host is busy: for example, the hanging sources are faked so that the time limit, not their hang, decides the answer, and the check is on which answer came and why, not on how many wall-clock milliseconds passed.
Search the other packages for tests that compare a wall-clock duration with a fixed bound and fix each the same way, or name it in the PR body with why it cannot flake.
No test, request or value is removed; no limit is lengthened.
Start after the rename (#312) lands, and use the new names. Follow AGENTS.md: checks only through make targets. make fmt, then flock -w 1800 /srv/code/tmp/.gate-smallwebwaf.lock make check; a flock timeout also exits 1, so read the output. Push over SSH and post with tea. Label the PR needs-review.
Model: opus-5-5
From the rework of https://git.eeqj.de/sneak/smallwebwaf/pulls/310 (https://git.eeqj.de/sneak/smallwebwaf/pulls/310#issuecomment-175986): `TestDiscriminatorAnswersWithinTheTimeLimitWhileEveryOutsideSourceHangs` checks the answer time against `answerTimeLimit` on the wall clock. On this host, often at several times its core count, that check can fail on load alone, as the sixteen-thousand-cookie test did in https://git.eeqj.de/sneak/smallwebwaf/issues/308.
**Definition of done**, one PR into `next`, test files only:
- The test still shows that the daemon answers within its time limit while every outside source hangs, but no longer fails because the host is busy: for example, the hanging sources are faked so that the time limit, not their hang, decides the answer, and the check is on which answer came and why, not on how many wall-clock milliseconds passed.
- Search the other packages for tests that compare a wall-clock duration with a fixed bound and fix each the same way, or name it in the PR body with why it cannot flake.
- No test, request or value is removed; no limit is lengthened.
Start after the rename (https://git.eeqj.de/sneak/smallwebwaf/issues/312) lands, and use the new names. Follow `AGENTS.md`: checks only through `make` targets. `make fmt`, then `flock -w 1800 /srv/code/tmp/.gate-smallwebwaf.lock make check`; a `flock` timeout also exits 1, so read the output. Push over SSH and post with `tea`. Label the PR `needs-review`.
Model: opus-5-5
clawbot
self-assigned this 2026-11-11 00:58:54 +01:00
Order. This starts after #318 lands, which covers the tests in internal/rproxy/limits_test.go; rebase onto it and leave those tests to it. The rename to waf has landed: the test is now TestWAFAnswersWithinTheTimeLimitWhileEveryOutsideSourceHangs in internal/waf/answertime_test.go. Package: the test files of internal/waf and of each package the search finds.
Model: opus-5-5
**Order.** This starts after https://git.eeqj.de/sneak/smallwebwaf/issues/318 lands, which covers the tests in `internal/rproxy/limits_test.go`; rebase onto it and leave those tests to it. The rename to `waf` has landed: the test is now `TestWAFAnswersWithinTheTimeLimitWhileEveryOutsideSourceHangs` in `internal/waf/answertime_test.go`. Package: the test files of `internal/waf` and of each package the search finds.
Model: opus-5-5
Scope note. The waits for the starting line in internal/sww belong to #331, built at the same time; leave them to it. #322 has landed, so start from current next.
Model: opus-5-5
**Scope note.** The waits for the `starting` line in `internal/sww` belong to https://git.eeqj.de/sneak/smallwebwaf/issues/331, built at the same time; leave them to it. https://git.eeqj.de/sneak/smallwebwaf/pulls/322 has landed, so start from current `next`.
Model: opus-5-5
Built in #343. The waf answer-time test runs its question on a fake clock and checks that the answer comes after exactly the GeoJS wait. The routewatch hanging-source test checks the answer Route gives. Gap, disclosed on the PR: the DNS blocklist's query stays on the network, so the fake clock does not count a wait on it.
Model: opus-5-5
Built in https://git.eeqj.de/sneak/smallwebwaf/pulls/343. The waf answer-time test runs its question on a fake clock and checks that the answer comes after exactly the GeoJS wait. The routewatch hanging-source test checks the answer `Route` gives. Gap, disclosed on the PR: the DNS blocklist's query stays on the network, so the fake clock does not count a wait on it.
Model: opus-5-5
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
From the rework of #310 (#310 (comment)):
TestDiscriminatorAnswersWithinTheTimeLimitWhileEveryOutsideSourceHangschecks the answer time againstanswerTimeLimiton the wall clock. On this host, often at several times its core count, that check can fail on load alone, as the sixteen-thousand-cookie test did in #308.Definition of done, one PR into
next, test files only:Start after the rename (#312) lands, and use the new names. Follow
AGENTS.md: checks only throughmaketargets.make fmt, thenflock -w 1800 /srv/code/tmp/.gate-smallwebwaf.lock make check; aflocktimeout also exits 1, so read the output. Push over SSH and post withtea. Label the PRneeds-review.Model: opus-5-5
Order. This starts after #318 lands, which covers the tests in
internal/rproxy/limits_test.go; rebase onto it and leave those tests to it. The rename towafhas landed: the test is nowTestWAFAnswersWithinTheTimeLimitWhileEveryOutsideSourceHangsininternal/waf/answertime_test.go. Package: the test files ofinternal/wafand of each package the search finds.Model: opus-5-5
Scope note. The waits for the
startingline ininternal/swwbelong to #331, built at the same time; leave them to it. #322 has landed, so start from currentnext.Model: opus-5-5
Built in #343. The waf answer-time test runs its question on a fake clock and checks that the answer comes after exactly the GeoJS wait. The routewatch hanging-source test checks the answer
Routegives. Gap, disclosed on the PR: the DNS blocklist's query stays on the network, so the fake clock does not count a wait on it.Model: opus-5-5