mirror of
https://github.com/openclaw/openclaw.git
synced 2026-09-28 14:12:28 +08:00
* docs(reference): split the testing reference by reader job docs/reference/test.md was 92,671 characters and mixed agent proof policy, how-to steps, reference tables, and runner-internals explanation on one page. It is now a short index over six children, one per reader job: - reference/test/local Routine local order, core commands, PR gate - reference/test/lanes Control UI, TUI, extension, Gateway, E2E lanes - reference/test/docker Docker scheduler knobs and the notable lanes - reference/test/performance Profiling, shard timings, benchmark scripts - reference/test/runner-internals Build locks, test state, JSON report merging - reference/test/remote-proof Crabbox/Testbox policy, wrapper, lease, trust Anchor strategy: per-anchor redirect routes are impossible here, because redirectSource() in scripts/lib/docs-redirects.mjs rejects any source containing [?#]. Every pre-split anchor instead stays alive on the parent as an authored <a id="..." /> stub in the "Where each section moved" list, the same mechanism docs/ci.md uses. All 30 ids were enumerated with parseDocsDocument, never a hand-rolled slug, so the four punctuated headings keep both the encoded and the cleaned id (for example full-docker-suite-(pnpm-test%3Adocker%3Aall) and full-docker-suite-pnpm-testdockerall). 29 ids are stubbed; `related` is not, because the index still publishes that heading itself, and stubbing it would raise a duplicate authored/canonical ID collision. Verified independently of docs-link-audit, which cannot see the regression: the split rewrote the repo's own links, so the audit reads clean even when external deep links break. Resolving all 30 pre-split ids against the parsed post-split index gives 30 resolved, 0 dead, 0 collisions, and all 24 onward deep links land on a real fragment of a real child. Losslessness (bodies, frontmatter excluded): code fences 20 -> 20 (+0) table rows 47 -> 47 (+0) inline code spans 530 -> 530 (+0, byte-identical multiset) fenced blocks 10 -> 10 (byte-identical, so commands are unchanged) chars 92,523 -> 92,253 on children + 5,093 on the index words 10,008 -> 9,981 on children + 381 on the index links 13 -> 9 on children + 35 on the index The chars/words/links deltas reconcile exactly: the two intro bullets (170 chars) and the Related list (139 chars, 3 links) stay on the index, and one declared edit adds 40 chars and one link. The single declared prose edit: "Local test commands below are the normal trusted development path" pointed at a section the split moves to another page, so "below" became a link to /reference/test/local. No other prose was rewritten; the remaining prose findings stay open for a follow-up. Test pins repointed. test/scripts/docs-sync-publish.test.ts pins the exact Release & CI navigation page list and breaks on the docs.json nav addition; its route list now includes the six children. The two QA Lab producers point their docsRefs at reference/test/local.md, the page that now owns the commands they run, instead of the index. changed-lanes.test.ts needs no change: it uses the path only as a docs-path example and asserts nothing about the content. Closes audit findings: r3-0695, r3-0696 * docs(reference): link the relocated local test commands ClawSweeper found a second orphaned cross-reference the split missed. remote-proof.md said "Local test commands below", but after the split those commands live at /reference/test/local while this page continues with remote-proof instructions, so "below" pointed at nothing. docs-link-audit --anchors: 0 broken links.
5.1 KiB
5.1 KiB
summary, read_when, title
| summary | read_when | title | |
|---|---|---|---|
| Index of the OpenClaw testing reference, one page per reader job |
|
Tests |
- Full testing kit (suites, live, Docker): Testing
- Update and plugin package validation: Testing updates and plugins
This page is an index. The testing reference is documented on six pages, one per reader job. Open the page that matches your task.
| Page | Read it when |
|---|---|
| Run tests locally | The routine local order, the core command table, and the local PR gate. |
| Control UI, TUI, and E2E lanes | Control UI, TUI, extension, Gateway, and live lane commands and fixture rules. |
| Docker test suites | The weighted Docker scheduler, its knobs, and the notable Docker lanes. |
| Test performance and benchmarks | Import profiling, CPU and heap profiles, shard timings, and the benchmark scripts. |
| Test runner internals | Shared build locks, isolated test state and homes, and JSON report merging. |
| Remote test proof | When agents use Crabbox or Testbox, and the wrapper, lease, and trust rules. |
Where each section moved
Every section heading from the previous single-page version keeps its anchor
here, so an existing link such as /reference/test#core-commands still
resolves. Each entry points at the page that now holds the content.
- Agent default
- Crabbox repository setup
- Routine local order
- Core commands
- Source tests and subprocess builds
- Shared test state and process helpers
- Control UI, TUI, and extension lanes
- Real-Gateway Control UI fixture lifetimes
- Retained Control UI proof
- Screenshots during Chromium recordings
- Gateway and E2E
- Full Docker suite
- Notable Docker lanes
- Sandbox compatibility lanes
- Local PR gate
- JSON reports across native processes
- Test performance tooling
- Benchmarks
- Model latency benchmark
- CLI startup benchmark
- Gateway startup benchmark
- Gateway restart benchmark
- Onboarding E2E (Docker)
- QR import smoke (Docker)