Skip to content

Latest commit

 

History

History
101 lines (73 loc) · 2.32 KB

File metadata and controls

101 lines (73 loc) · 2.32 KB

Conformance

Status: phase-3 completion contract is green.

Headline

Suite Result Command
Workspace tests 201 / 201 cargo test --workspace
Rust-vs-C wire oracle 4 / 4 bash harness/oracle/run-smoke.sh --diff
Upstream devel/test.py 62 / 62 bash harness/oracle/run-official.sh
Completion contract DONE python3 ../port-harness/loop/check-completion.py --project . --run-commands

Rust-vs-C Wire Oracle

The oracle launches the pinned C reference and the Rust server, sends the same HTTP request fixture to both, normalizes explicitly allowed dynamic fields, and requires byte equality after normalization.

Current fixtures:

Fixture Capability
get-index get-static
get-file get-static
head-index head-static
traversal path-traversal-rejection

Run:

bash harness/oracle/run-smoke.sh --diff

Expected:

get-file     PASS
get-index    PASS
head-index   PASS
traversal    PASS

Upstream Suite

The public conformance claim is the upstream reference/darkhttpd/devel/test.py runner:

62/62 ok, 0 fail, 0 error

Run it directly:

bash harness/oracle/run-official.sh

This does not yet claim every optional upstream devel/test_*.py file. Those files exercise surfaces such as auth, custom headers, forwarding, custom server-id behavior, and timeout-specific cases. They should be wired as separate runner rows before expanding the public compatibility claim.

Normalization Rules

Allowed normalizers are implemented in harness/oracle/normalize.py.

Currently allowed:

  • Date header
  • Server header
  • generated timestamp inside darkhttpd's 400 error body

Not allowed to normalize without an explicit fixture note:

  • status code
  • content length
  • response body text except listed dynamic timestamp fields
  • MIME type
  • range headers
  • connection close vs keepalive
  • redirect location

Completion Contract

The source of truth for "done" is:

harness/completion.toml

Current contract:

  • phase-2 packets complete: 11 / 11
  • phase-3 packets complete: 8 / 8
  • wire oracle: 4 / 4
  • official upstream runner: 62 / 62
  • official per-test ledger detail: 94 / 94 latest rows pass
  • no required auto packets remain
  • performance baseline passes
  • Rust security traversal seed passes