Skip to content

Add the server testing framework design (Phase 0) - #347

Merged
sibson merged 2 commits into
mainfrom
claude/vnc-server-testing-framework-14c413
Aug 14, 2026
Merged

Add the server testing framework design (Phase 0)#347
sibson merged 2 commits into
mainfrom
claude/vnc-server-testing-framework-14c413

Conversation

@sibson

@sibson sibson commented Aug 14, 2026

Copy link
Copy Markdown
Owner

Docs-only. First of a six-PR stack that builds out the VNC server testing framework; this one is the design and the plan reconciliation, no code.

What's here

  • docs/testing-framework-design.md — the design. Three legs:

    • Unit tests as the regression layer — byte-level protocol tests and per-encoding decoder goldens. This is the permanent floor; anything found live or via capture gets distilled down into it.
    • Live server fleet for smoke and discovery — scenarios shell out to the real vncdo CLI via subprocess.run and verify through event sinks, so a hang is contained by the kernel reaping the subprocess rather than by anything in-process.
    • Capture kit for servers we cannot host — vnclog --capture plus an in-repo replay tool. Replay never runs in CI; it is a maintainer tool for reproducing a reporter's server locally.
  • docs/server-compatibility-plan.md — Phase 0 updated to match those decisions. Tier 3 becomes capture-plus-distill (capture evidence on issues, replay tool for maintainers, distilled unit tests as the floor) rather than in-repo replayable fingerprint fixtures.

Consequences

Stack

  1. this PR — design + plan reconciliation
  2. Phase 1 — fleet smoke through the vncdo CLI, event sinks, pexpect retired
  3. Phase 2 — decoder golden unit tests
  4. Phase 3 — vnclog --capture
  5. Phase 4 — replay_server.py
  6. Phase 5 — in-process API lifecycle suite

Each phase lands as its own PR stacked on the previous one.

🤖 Generated with Claude Code

sibson and others added 2 commits August 14, 2026 00:07
Three legs: unit tests as the regression layer (byte-level protocol tests
and per-encoding decoder goldens), the live server fleet for smoke and
discovery via subprocess-run CLI with event-sink verification, and a
capture kit (vncdolog --capture plus an in-repo replay tool) for servers
we cannot host. Replay never runs in CI; bugs found live or via capture
are distilled into unit tests.

Supersedes the #341 scenario-registry approach, retires pexpect and the
native libvncserver build, and demotes the generated compatibility.rst
to a non-requirement.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Phase 0 now points at docs/testing-framework-design.md and reflects its
decisions: unit tests as the regression layer, no replay in CI, decoder
golden unit tests instead of live golden PNGs, subprocess-run smoke with
event-sink verification, the native libvncserver build retired into the
compose fleet, and generated compatibility.rst demoted to a
non-requirement. Tier 3 becomes capture-plus-distill (vncdolog --capture
evidence on issues, replay tool for maintainers, distilled unit tests as
the permanent floor) instead of in-repo replayable fingerprint fixtures.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@sibson
sibson merged commit ab8217d into main Aug 14, 2026
10 checks passed
@sibson
sibson deleted the claude/vnc-server-testing-framework-14c413 branch August 14, 2026 14:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant