glm-5.3-flash
|
d6fbd04ef3
|
vendor: the differential RFC edge-case suite — 32 duplex-only tests
tests/vendor-differential.rs pins the vendored extraction's RFC edge
behavior as explicit bytes, per vendor.md §Maintenance Posture (the
differential-testing contract; ADR-011):
- negotiation: empty/zero method lists -> 0xff, server-order method
preference, 0x04 greeting refusal before the methods byte, EOF
mid-handshake typed error, password sub-protocol EmptyUsername/
EmptyPassword + the 0x01/0xff-then-error reject path
- command reads: unknown command -> 0x07 reply, RSV != 0 tolerance
(upstream reads it unchecked), ATYP 0x02/0x05 -> 0x08, the
255-byte domain wire maximum, truncated v4/domain address errors
- reply forms (new_reply regression guard): 10/22-byte shapes,
constant VER/RSV across codes, zero-addr error replies, caller
sock_addr verbatim on success
- client session: per-code ReplyError mapping (incl. the 0x06
double map), domain request encoding, UDP-ASSOCIATE zero-target
fallback form, skip_auth emits no greeting
- UDP codec: GarbageInReserved, FRAG passthrough (the parser
returns it; refusing is the caller's job), v6 round-trip,
payload split
- transfer/wait_on_tcp: pump both directions to completion, EOF on
clean close, UnexpectedUdpControlGarbage carries the byte
Every non-obvious expectation names the upstream behavior it pins
(file + line in /workspace/fast-socks5, v1.0.0); the reference is
consulted, never linked — no build-time dependency. Duplex pairs
only (no TcpListener/UdpSocket/tokio::net in test code).
Verification: cargo test (37 unit + 32 differential),
cargo test --all-features (identical), cargo clippy --all-targets
-- -D warnings, cargo fmt --check, cargo check --target
wasm32-unknown-unknown — all clean.
Task: tasks/implementation/vendor-differential-tests.md (status ->
completed).
|
2026-09-21 15:27:20 +00:00 |
|