TESTING.md constraints match the resolver and the test-time policy #292

Merged
clawbot merged 1 commits from issue-289-testing-constraints into next 2026-10-15 18:01:52 +02:00
Collaborator

Closes #289.

The Constraints list in TESTING.md described a query timeout calibrated to round-trip time and a limited root-server fan-out. The resolver has neither, so those two lines are gone, and the list now says what the code does:

  • Each query to a nameserver has a 2-second timeout, and a query over UDP that gets no reply is sent once more (queryTimeoutDuration = 2s and maxRetries = 2 in internal/resolver/iterative.go).
  • In the walk to a name's nameservers, a zone's servers are asked one at a time in a random order, as the README's DNS Resolution Strategy says.
  • make test must finish in under 60 seconds, the hard cap in REPO_POLICIES.md, and under 20 seconds is the target. The old line called 60 seconds the target.

The line on flaky failures called them acceptable. It now agrees with the README's "No DNS mocking. Ever.": a flaky live test is fixed with robustness, never with mocks or skip flags.

The lines about network access and internal/livednstest were already correct and are unchanged. TODO.md gets its Completed Steps entry.

Judgement call: the retry sentence says "over UDP" because the TCP query sent after a truncated reply gets a single try, so "every query is sent twice" would be false.

Model: opus-5-5

Closes https://git.eeqj.de/sneak/dnswatcher/issues/289. The Constraints list in `TESTING.md` described a query timeout calibrated to round-trip time and a limited root-server fan-out. The resolver has neither, so those two lines are gone, and the list now says what the code does: - Each query to a nameserver has a 2-second timeout, and a query over UDP that gets no reply is sent once more (`queryTimeoutDuration` = 2s and `maxRetries` = 2 in `internal/resolver/iterative.go`). - In the walk to a name's nameservers, a zone's servers are asked one at a time in a random order, as the README's DNS Resolution Strategy says. - `make test` must finish in under 60 seconds, the hard cap in `REPO_POLICIES.md`, and under 20 seconds is the target. The old line called 60 seconds the target. The line on flaky failures called them acceptable. It now agrees with the README's "No DNS mocking. Ever.": a flaky live test is fixed with robustness, never with mocks or skip flags. The lines about network access and `internal/livednstest` were already correct and are unchanged. `TODO.md` gets its Completed Steps entry. Judgement call: the retry sentence says "over UDP" because the TCP query sent after a truncated reply gets a single try, so "every query is sent twice" would be false. Model: opus-5-5
clawbot added the needs-review label 2026-10-15 13:30:45 +02:00
clawbot self-assigned this 2026-10-15 13:30:53 +02:00
Author
Collaborator

This passes review. It needs a rebase onto next for the TODO.md Completed Steps entry alone.

Model: opus-5-5

This passes review. It needs a rebase onto `next` for the `TODO.md` Completed Steps entry alone. Model: opus-5-5
clawbot added needs-rebase and removed needs-review labels 2026-10-15 17:26:18 +02:00
Author
Collaborator

One more line in the same Constraints list does not hold, so it is fixed in this PR before it lands:

  1. TESTING.md:30: "Flaky failures from transient network issues are acceptable and should be investigated as potential resolver bugs". The README's "No DNS mocking. Ever." says a flaky live test is a robustness problem that is fixed with robustness (retries with backoff, several independent nameservers, longer timeouts), never with mocks. Acceptable: the line says that, in agreement with the README, and still rules out mocks and skip flags.

Model: opus-5-5

One more line in the same Constraints list does not hold, so it is fixed in this PR before it lands: 1. `TESTING.md:30`: "Flaky failures from transient network issues are acceptable and should be investigated as potential resolver bugs". The README's "No DNS mocking. Ever." says a flaky live test is a robustness problem that is fixed with robustness (retries with backoff, several independent nameservers, longer timeouts), never with mocks. Acceptable: the line says that, in agreement with the README, and still rules out mocks and skip flags. Model: opus-5-5
clawbot added needs-rework and removed needs-rebase labels 2026-10-15 17:32:05 +02:00
clawbot added 1 commit 2026-10-15 17:34:38 +02:00
The Constraints list named a query timeout calibrated to round-trip time and a
limited root-server fan-out; the resolver has neither. It now gives the
2-second timeout and the second try over UDP, says a zone's servers are asked
one at a time in a random order, and gives the 60-second cap and 20-second
target for make test from REPO_POLICIES.md. The line on flaky failures now
says, as the README does, that a flaky live test is fixed with robustness,
never with mocks or skip flags.

Model: opus-5-5
clawbot force-pushed issue-289-testing-constraints from 2912c0dd0d to ed239b248b 2026-10-15 17:34:38 +02:00 Compare
clawbot added needs-review and removed needs-rework labels 2026-10-15 17:36:47 +02:00
Author
Collaborator

Rebased onto next, with this PR's TODO.md entry first above the entries already there. The flaky-failures line in Constraints now says a flaky live test is fixed with retries with backoff, several independent nameservers or longer timeouts, never with mocks or skip flags.

Model: opus-5-5

Rebased onto `next`, with this PR's `TODO.md` entry first above the entries already there. The flaky-failures line in Constraints now says a flaky live test is fixed with retries with backoff, several independent nameservers or longer timeouts, never with mocks or skip flags. Model: opus-5-5
Author
Collaborator

This passes review.

Model: opus-5-5

This passes review. Model: opus-5-5
clawbot merged commit f6b7aefcbf into next 2026-10-15 18:01:52 +02:00
clawbot deleted branch issue-289-testing-constraints 2026-10-15 18:01:52 +02:00
Sign in to join this conversation.