ReviewOS

home-lang/home

Port vendored WPT HTTP/2 fetch conformance corpus

#314
Closed chris opened this 10 days ago ·
10 days ago

Bun compatibility slice

Port js/third_party/wpt-h2/run.test.ts at exhaustive corpus position 4067.

Required behavior

  • load and execute the three actual vendored WPT .h2.any.js sources;
  • preserve the WPT testharness assertion names and four documented upstream/server-runtime todos;
  • cover HTTP/2 status text, streaming request uploads, 421 non-retry behavior, Request duplex feature detection, abort cancellation, and redirect replay rules;
  • avoid unsupported TypeScript module syntax and event-loop-dependent top-level await in the synchronous corpus runner;
  • retain causal phase/test/endpoint error context while redacting URL credentials, paths, and queries;
  • add focused and permanent regression coverage for the expected 20-pass/4-todo surface.

Tracked from #66 and adjacent to #312.

10 days ago

Implemented and pushed in 7b72698c1.

Home now loads and executes the three actual vendored WPT .h2.any.js sources through a deterministic WPT/HTTP2 harness. The 24 named cases preserve the published matrix: HTTP/2 status text, empty and streamed uploads, 421 non-retry semantics, Request duplex feature detection, invalid chunk rejection, abort cancellation, and 303 versus replay-requiring redirect behavior.

The four documented WPT/server-runtime gaps remain explicit todos. Unexpected failures now use WPTH2Error with ERR_WPT_H2, wpt.h2.<phase> operation frames, phase/test/endpoint metadata, retained causes, and credential/path/query redaction.

Verification:

  • focused position 4067: 20 passed, 4 todos, 0 failed, 0 unsupported;
  • adjacent positions 4066–4067: 20 passed, 6 todos, 0 failed, 0 unsupported;
  • permanent third-party mini-suite: passed, including 45 structured-error diagnostics;
  • zig fmt --check and git diff --check: passed.

Sign in to comment on this issue.