Files
rvbox/docs/testing.md
T

1.7 KiB

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:

make verify

Run focused unit tests with:

scripts/test-unit --package ./internal/domain --run UUIDv7 --race

The integration harness currently provides the Phase 0 sample suite. It proves run isolation and the durable lifecycle without starting an RVBox service that has not been implemented yet:

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

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. Native Windows integration/E2E entries remain explicitly blocked until the resettable Windows host is available; Wine or a protocol stub is not treated as equivalent coverage.