71 lines
3.0 KiB
Markdown
71 lines
3.0 KiB
Markdown
# RVBox implementation test workflow
|
|
|
|
All Go, protobuf, and harness work runs in the pinned toolchain container. No
|
|
host Go installation is used.
|
|
|
|
Run the normal pre-commit gate with:
|
|
|
|
```sh
|
|
make verify
|
|
```
|
|
|
|
Run focused unit tests with:
|
|
|
|
```sh
|
|
scripts/test-unit --package ./internal/domain --run UUIDv7 --race
|
|
```
|
|
|
|
The integration harness provides the Phase 0 `sample` suite, the incremental
|
|
Phase 2 `store` suite, and the incremental Phase 3 `server-session` suite.
|
|
The storage suite uses a real temporary SQLite database in WAL mode and a real
|
|
segment/audit filesystem. The session suite uses a real HTTP/WebSocket listener,
|
|
binary protobuf frames, SQLite fencing, and the race detector; neither mocks its
|
|
respective durability or wire boundary:
|
|
|
|
```sh
|
|
scripts/test-env doctor
|
|
scripts/test-integration --suite sample --run-id my-sample
|
|
scripts/test-env status --run-id my-sample
|
|
scripts/test-env collect --run-id my-sample
|
|
scripts/test-env reset --run-id my-sample
|
|
scripts/test-env reuse --run-id my-sample
|
|
scripts/test-integration --suite sample --run-id my-sample --resume
|
|
scripts/test-env reset --run-id my-sample
|
|
scripts/test-env purge --run-id my-sample
|
|
|
|
scripts/test-integration --suite store --run-id store-smoke
|
|
scripts/test-env logs --run-id store-smoke
|
|
scripts/test-env collect --run-id store-smoke
|
|
scripts/test-env reset --run-id store-smoke
|
|
scripts/test-env purge --run-id store-smoke
|
|
|
|
scripts/test-integration --suite server-session --run-id session-smoke
|
|
scripts/test-env logs --run-id session-smoke
|
|
scripts/test-env collect --run-id session-smoke
|
|
scripts/test-env reset --run-id session-smoke
|
|
scripts/test-env purge --run-id session-smoke
|
|
```
|
|
|
|
Suite output is capped at 1 MiB and stored as `artifacts/suite.log`. A failed
|
|
run remains inspectable and can be moved back to `ready` with `recover`, then
|
|
resumed with the same run ID and deterministic shuffle seed. Test-run cleanup
|
|
never removes the shared Go module or build-cache volumes.
|
|
|
|
Each run owns only `.test-runs/<run-id>` and resources explicitly recorded in
|
|
that run's versioned manifest. The journal is append-only and fsynced. `purge`
|
|
validates the run ID and manifest identity, refuses symlink targets or manifests
|
|
that still list runtime resources, and then removes only that exact run. Purged
|
|
artifacts are not recoverable. Dependency cache volumes are never part of run
|
|
cleanup.
|
|
|
|
`test/coverage.toml` is the incremental requirement-to-test inventory. The
|
|
`make verify` lint stage checks unique stable IDs and verifies every implemented
|
|
test reference against source. A resettable Windows smoke VM is now available;
|
|
its exact headless VirtualBox/Guest Control runbook is in section 2.6.1 of
|
|
`docs/implementation-plan.v1.md`. Native Windows integration/E2E entries may
|
|
run there once the Windows harness acquires the exclusive lease and performs
|
|
the documented snapshot/health checks. The VM is only the minimum smoke lane,
|
|
so deferred native multi-session/ambiguous-session, Server Core, and
|
|
older-build entries remain explicitly blocked until their own fixtures exist.
|
|
Wine or a protocol stub is not treated as equivalent coverage.
|