open-standards/wai/http-conformance/falsify
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science 1cffbc6ffd wai: HTTP reports a refinement by its refines.base alone; a conforming envelope's refinement tested
- §7 step 4 as the text stands: a refinement of the pick is one whose refines.base, read
  on its own, is the pick's id (container::refinements_naming, refinements_naming in
  http_verify.py), so one whose refines is otherwise malformed is reported dropped
  (components_nonconforming). Of a conforming envelope the set is the same as before.
- Objects OCF (ONC's conforming twin: refinements [2], dropped []), ONM (refines
  {base: b} alone: reported) and ONX (refines {base: x}: not reported), on the whole and
  the range paths; fetch_OR_malformed_refines now reports its refinement; the generator
  checks each outcome.
- falsify: conforming-withheld and refines-read-whole, each with an http_verify.py
  --mutate, wired into falsify/run.sh; nonconforming-offered's must-fail list extended.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-08 03:11:46 -04:00
..
abr-options-unbounded.patch http-conformance: falsify the budget rule, the bounds and the exact arithmetic of adaptation 2026-10-06 10:39:19 -04:00
abr-parameter-truncated.patch http-conformance: falsify the budget rule, the bounds and the exact arithmetic of adaptation 2026-10-06 10:39:19 -04:00
accept-gzip.patch wai: falsification patches for the fix round, and the four the rewrite moved, regenerated 2026-10-05 09:35:08 -04:00
adjacency-dseq.patch wai: falsification of the playlist side (W3-4, W3-5) 2026-10-06 06:31:05 -04:00
adjacency-pdt.patch wai: falsification of the playlist side (W3-4, W3-5) 2026-10-06 06:31:05 -04:00
allow-trailing.patch wai: http-conformance falsification patches and their runner 2026-10-05 07:52:43 -04:00
bandwidth-average-floor.patch wai: falsification of the playlist side (W3-4, W3-5) 2026-10-06 06:31:05 -04:00
base-ready-at-done.patch wai: HTTP corpus round 4 — fetch_timed runs the session on a clock: the base ready before its refinement, the deadline from the verifying response, a refinement's whole-object 200 that never reaches the base 2026-10-06 02:46:20 -04:00
base-unanswered.patch wai: falsification patches for the fix round, and the four the rewrite moved, regenerated 2026-10-05 09:35:08 -04:00
bola-narrow-product.patch http-conformance: falsify the budget rule, the bounds and the exact arithmetic of adaptation 2026-10-06 10:39:19 -04:00
bola-waits.patch wai: falsification of the playlist side (W3-4, W3-5) 2026-10-06 06:31:05 -04:00
budget-raises.patch http-conformance: falsify the budget's never raising the choice and option 0 when unmet 2026-10-06 14:03:26 -04:00
budget-unlabelled-escapes.patch http-conformance: falsify the budget's never raising the choice and option 0 when unmet 2026-10-06 14:03:26 -04:00
budget-unlabelled.patch http-conformance: falsify the budget's never raising the choice and option 0 when unmet 2026-10-06 14:03:26 -04:00
budget-unmet-least-figure.patch http-conformance: falsify the budget's never raising the choice and option 0 when unmet 2026-10-06 14:03:26 -04:00
chain-bindings-dropped.patch http-conformance: falsify the live chain's walk, bound, reload, key and bindings, and the listing's rebinding refusals 2026-10-06 09:38:20 -04:00
chain-key-unchecked.patch http-conformance: falsify the live chain's walk, bound, reload, key and bindings, and the listing's rebinding refusals 2026-10-06 09:38:20 -04:00
chain-parent-unchecked.patch http-conformance: falsify re-anchoring, URL-keyed bindings, the gap rule, the walk's per-parent checks and URL resolution; chain and rebinding patches against the new code; Python mutations and a retention self-test 2026-10-06 14:42:56 -04:00
chain-reload-as-revision.patch http-conformance: falsify the live chain's walk, bound, reload, key and bindings, and the listing's rebinding refusals 2026-10-06 09:38:20 -04:00
chain-walk-unbounded.patch http-conformance: falsify re-anchoring, URL-keyed bindings, the gap rule, the walk's per-parent checks and URL resolution; chain and rebinding patches against the new code; Python mutations and a retention self-test 2026-10-06 14:42:56 -04:00
conforming-withheld.patch wai: HTTP reports a refinement by its refines.base alone; a conforming envelope's refinement tested 2026-10-08 03:11:46 -04:00
counter.patch wai: http-conformance falsification patches and their runner 2026-10-05 07:52:43 -04:00
dash-order-unchecked.patch http-conformance: falsify the MPD reader's runs, its timeline bound and run ends, against the new reader; Python mutations for expansion, scanned attribute names and the timeline bound 2026-10-06 13:51:28 -04:00
dash-r-ignored.patch http-conformance: falsify the MPD reader's runs, its timeline bound and run ends, against the new reader; Python mutations for expansion, scanned attribute names and the timeline bound 2026-10-06 13:51:28 -04:00
dash-run-end-unchecked.patch http-conformance: falsify the MPD reader's runs, its timeline bound and run ends, against the new reader; Python mutations for expansion, scanned attribute names and the timeline bound 2026-10-06 13:51:28 -04:00
dash-start-unchecked.patch http-conformance: falsify DASH adjacency, the MPD reader's subset and bounds, MPD escaping and the gap left out 2026-10-06 10:10:01 -04:00
dash-timelines-unbounded.patch http-conformance: falsify the MPD reader's runs, its timeline bound and run ends, against the new reader; Python mutations for expansion, scanned attribute names and the timeline bound 2026-10-06 13:51:28 -04:00
dash-timescale-unchecked.patch http-conformance: falsify the MPD reader's runs, its timeline bound and run ends, against the new reader; Python mutations for expansion, scanned attribute names and the timeline bound 2026-10-06 13:51:28 -04:00
dash-zero-d.patch http-conformance: falsify the MPD reader's runs, its timeline bound and run ends, against the new reader; Python mutations for expansion, scanned attribute names and the timeline bound 2026-10-06 13:51:28 -04:00
deadline-wraps.patch wai: HTTP corpus round 4 — fetch_timed runs the session on a clock: the base ready before its refinement, the deadline from the verifying response, a refinement's whole-object 200 that never reaches the base 2026-10-06 02:46:20 -04:00
decimal-truncates.patch wai: falsification of the playlist side (W3-4, W3-5) 2026-10-06 06:31:05 -04:00
depth-per-layer.patch http-conformance: falsify the budget rule, the bounds and the exact arithmetic of adaptation 2026-10-06 10:39:19 -04:00
depth-sum-saturates.patch http-conformance: falsify the budget rule, the bounds and the exact arithmetic of adaptation 2026-10-06 10:39:19 -04:00
dispatch-layer.patch wai: falsification patches for the fix round, and the four the rewrite moved, regenerated 2026-10-05 09:35:08 -04:00
drop-domain.patch wai: http-conformance falsification patches and their runner 2026-10-05 07:52:43 -04:00
dup-caps.patch wai: falsification patches for the fix round, and the four the rewrite moved, regenerated 2026-10-05 09:35:08 -04:00
gap-carries.patch http-conformance: falsify the gap rule 2026-10-06 10:57:18 -04:00
gap-not-rendered.patch wai: falsification follows the renderer: two patches re-cut, a gap and layer bytes added 2026-10-06 07:30:39 -04:00
gap-withdraws.patch http-conformance: falsify re-anchoring, URL-keyed bindings, the gap rule, the walk's per-parent checks and URL resolution; chain and rebinding patches against the new code; Python mutations and a retention self-test 2026-10-06 14:42:56 -04:00
grant-ceiling-written-out.patch http-conformance: falsify the grant's null ceiling and the receipt file's number bound 2026-10-06 11:25:08 -04:00
ilog2-no-interp.patch wai: falsification of the playlist side (W3-4, W3-5) 2026-10-06 06:31:05 -04:00
intersection.patch wai: falsification patches for the fix round, and the four the rewrite moved, regenerated 2026-10-05 09:35:08 -04:00
layer-after-uri.patch wai: falsification follows the renderer: two patches re-cut, a gap and layer bytes added 2026-10-06 07:30:39 -04:00
layer-any-alt.patch wai: falsification patches for round 3 — refines taken for a layer, a no-digest refinement applied whole, a layer declared in any alt or with no base 2026-10-05 10:47:59 -04:00
layer-without-base.patch wai: falsification patches for round 3 — refines taken for a layer, a no-digest refinement applied whole, a layer declared in any alt or with no base 2026-10-05 10:47:59 -04:00
layers-not-counted.patch wai: falsification follows the renderer: two patches re-cut, a gap and layer bytes added 2026-10-06 07:30:39 -04:00
left-len.patch wai: http-conformance falsification patches and their runner 2026-10-05 07:52:43 -04:00
listed-open-parts.patch wai: falsification of the playlist side (W3-4, W3-5) 2026-10-06 06:31:05 -04:00
merge-classes.patch wai: http-conformance falsification patches and their runner 2026-10-05 07:52:43 -04:00
mpc-no-stall.patch http-conformance: falsify the budget rule, the bounds and the exact arithmetic of adaptation 2026-10-06 10:39:19 -04:00
mpd-char-unchecked.patch http-conformance: falsify DASH adjacency, the MPD reader's subset and bounds, MPD escaping and the gap left out 2026-10-06 10:10:01 -04:00
mpd-gap-listed.patch http-conformance: falsify DASH adjacency, the MPD reader's subset and bounds, MPD escaping and the gap left out 2026-10-06 10:10:01 -04:00
no-root-flag.patch wai: http-conformance falsification patches and their runner 2026-10-05 07:52:43 -04:00
nonconforming-offered.patch wai: HTTP reports a refinement by its refines.base alone; a conforming envelope's refinement tested 2026-10-08 03:11:46 -04:00
order-by-table.patch wai: falsification of the playlist side (W3-4, W3-5) 2026-10-06 06:31:05 -04:00
plus-sign.patch wai: falsification patches for the fix round, and the four the rewrite moved, regenerated 2026-10-05 09:35:08 -04:00
reanchor-backwards.patch http-conformance: falsify re-anchoring, URL-keyed bindings, the gap rule, the walk's per-parent checks and URL resolution; chain and rebinding patches against the new code; Python mutations and a retention self-test 2026-10-06 14:42:56 -04:00
rebind-sequence.patch http-conformance: falsify re-anchoring, URL-keyed bindings, the gap rule, the walk's per-parent checks and URL resolution; chain and rebinding patches against the new code; Python mutations and a retention self-test 2026-10-06 14:42:56 -04:00
rebind-spelling.patch http-conformance: falsify re-anchoring, URL-keyed bindings, the gap rule, the walk's per-parent checks and URL resolution; chain and rebinding patches against the new code; Python mutations and a retention self-test 2026-10-06 14:42:56 -04:00
rebind-uri.patch http-conformance: falsify re-anchoring, URL-keyed bindings, the gap rule, the walk's per-parent checks and URL resolution; chain and rebinding patches against the new code; Python mutations and a retention self-test 2026-10-06 14:42:56 -04:00
receipt-duplicate-names-raw.patch http-conformance: falsify the receipt reader's duplicate-member refusal 2026-10-06 11:06:39 -04:00
receipt-duplicates.patch http-conformance: falsify the receipt reader's duplicate-member refusal 2026-10-06 11:06:39 -04:00
receipt-name-unchecked.patch wai: falsification of the playlist side (W3-4, W3-5) 2026-10-06 06:31:05 -04:00
receipt-numbers-unbounded.patch http-conformance: falsify the grant's null ceiling and the receipt file's number bound 2026-10-06 11:25:08 -04:00
receipt-render-unsigned.patch wai: falsification of the playlist side (W3-4, W3-5) 2026-10-06 06:31:05 -04:00
record-alt.patch wai: falsification patches for the fix round, and the four the rewrite moved, regenerated 2026-10-05 09:35:08 -04:00
refinement-200-whole.patch wai: HTTP corpus round 4 — fetch_timed runs the session on a clock: the base ready before its refinement, the deadline from the verifying response, a refinement's whole-object 200 that never reaches the base 2026-10-06 02:46:20 -04:00
refines-makes-layer.patch wai: falsification patches for round 3 — refines taken for a layer, a no-digest refinement applied whole, a layer declared in any alt or with no base 2026-10-05 10:47:59 -04:00
refines-read-whole.patch wai: HTTP reports a refinement by its refines.base alone; a conforming envelope's refinement tested 2026-10-08 03:11:46 -04:00
refusal-ends.patch wai: falsification patches for the fix round, and the four the rewrite moved, regenerated 2026-10-05 09:35:08 -04:00
render-parts-after-extinf.patch wai: falsification follows the renderer: two patches re-cut, a gap and layer bytes added 2026-10-06 07:30:39 -04:00
response-no-clock.patch wai: HTTP corpus round 4 — fetch_timed runs the session on a clock: the base ready before its refinement, the deadline from the verifying response, a refinement's whole-object 200 that never reaches the base 2026-10-06 02:46:20 -04:00
reuse-stale.patch wai: HTTP corpus round 4 — fetch_timed runs the session on a clock: the base ready before its refinement, the deadline from the verifying response, a refinement's whole-object 200 that never reaches the base 2026-10-06 02:46:20 -04:00
run.sh wai: HTTP reports a refinement by its refines.base alone; a conforming envelope's refinement tested 2026-10-08 03:11:46 -04:00
select-no-digest.patch wai: http-conformance falsification patches and their runner 2026-10-05 07:52:43 -04:00
session-data-more-lines.patch http-conformance: falsify the session-data line's place and its being one line 2026-10-06 11:14:12 -04:00
session-data-position.patch http-conformance: falsify the session-data line's place and its being one line 2026-10-06 11:14:12 -04:00
sig-key-lenient.patch Leave wai-quantum on its own verifier; the rule goes back into wai-rs 2026-10-07 14:33:18 -04:00
sig-verify-lenient.patch Leave wai-quantum on its own verifier; the rule goes back into wai-rs 2026-10-07 14:33:18 -04:00
skip-digest.patch wai: http-conformance falsification patches and their runner 2026-10-05 07:52:43 -04:00
skip-on-absent.patch wai: falsification patches for the fix round, and the four the rewrite moved, regenerated 2026-10-05 09:35:08 -04:00
skip-read.patch wai: falsification of the playlist side (W3-4, W3-5) 2026-10-06 06:31:05 -04:00
threshold-all.patch wai: falsification patches for the fix round, and the four the rewrite moved, regenerated 2026-10-05 09:35:08 -04:00
tick-noop.patch wai: HTTP corpus round 4 — fetch_timed runs the session on a clock: the base ready before its refinement, the deadline from the verifying response, a refinement's whole-object 200 that never reaches the base 2026-10-06 02:46:20 -04:00
trust-content-range.patch wai: falsification patches for the fix round, and the four the rewrite moved, regenerated 2026-10-05 09:35:08 -04:00
union-no-layer.patch wai: falsification patches for the fix round, and the four the rewrite moved, regenerated 2026-10-05 09:35:08 -04:00
uri-dots-kept.patch http-conformance: falsify re-anchoring, URL-keyed bindings, the gap rule, the walk's per-parent checks and URL resolution; chain and rebinding patches against the new code; Python mutations and a retention self-test 2026-10-06 14:42:56 -04:00
uri-percent-kept.patch http-conformance: falsify re-anchoring, URL-keyed bindings, the gap rule, the walk's per-parent checks and URL resolution; chain and rebinding patches against the new code; Python mutations and a retention self-test 2026-10-06 14:42:56 -04:00
wai-prefix-case.patch wai: falsification patches for the fix round, and the four the rewrite moved, regenerated 2026-10-05 09:35:08 -04:00
walk-exceeded-wedges.patch http-conformance: falsify re-anchoring, URL-keyed bindings, the gap rule, the walk's per-parent checks and URL resolution; chain and rebinding patches against the new code; Python mutations and a retention self-test 2026-10-06 14:42:56 -04:00
walk-parent-name-unchecked.patch http-conformance: falsify re-anchoring, URL-keyed bindings, the gap rule, the walk's per-parent checks and URL resolution; chain and rebinding patches against the new code; Python mutations and a retention self-test 2026-10-06 14:42:56 -04:00
walk-parent-unverified.patch http-conformance: falsify re-anchoring, URL-keyed bindings, the gap rule, the walk's per-parent checks and URL resolution; chain and rebinding patches against the new code; Python mutations and a retention self-test 2026-10-06 14:42:56 -04:00
whole-applies-no-digest.patch wai: the HTTP plan follows SPEC §7.1's offer rule 2026-10-08 01:38:05 -04:00
xml-attribute-twice.patch http-conformance: falsify the MPD reader's runs, its timeline bound and run ends, against the new reader; Python mutations for expansion, scanned attribute names and the timeline bound 2026-10-06 13:51:28 -04:00
xml-cdata-read.patch http-conformance: falsify DASH adjacency, the MPD reader's subset and bounds, MPD escaping and the gap left out 2026-10-06 10:10:01 -04:00
xml-char-ref-unchecked.patch http-conformance: falsify DASH adjacency, the MPD reader's subset and bounds, MPD escaping and the gap left out 2026-10-06 10:10:01 -04:00