photoncloud-monorepo/docs/testing.md
centra d6d96b8c37
Some checks failed
Nix CI / filter (push) Successful in 6s
Nix CI / gate () (push) Failing after 1s
Nix CI / gate (shared crates) (push) Has been skipped
Nix CI / build () (push) Has been skipped
Nix CI / ci-status (push) Failing after 1s
Move native runtime seed state into declarative Nix
2026-03-28 07:38:45 +09:00

54 lines
1.9 KiB
Markdown

# Testing
PhotonCloud treats VM-first validation as the canonical local proof path.
## Canonical Validation
```bash
nix run ./nix/test-cluster#cluster -- fresh-smoke
```
This flow:
- builds all six VM images on the host
- boots the cluster in dependency order
- validates control-plane, worker, gateway, storage, and fault-injection behavior
- proves that `deployer` seeds scheduler-managed native services directly from declarative Nix cluster state
## Publishable Checks
```bash
nix run ./nix/test-cluster#cluster -- fresh-smoke
nix run ./nix/test-cluster#cluster -- fresh-matrix
nix run ./nix/test-cluster#cluster -- fresh-bench-storage
```
Use these three commands as the release-facing local proof set:
- `fresh-smoke`: whole-cluster readiness, core behavior, and fault injection
- `fresh-matrix`: composed service scenarios such as `prismnet + flashdns + fiberlb` and PrismNet-backed VM hosting bundles with `plasmavmc + coronafs + lightningstor`
- `fresh-bench-storage`: CoronaFS local-vs-shared-volume throughput, cross-worker volume visibility, and LightningStor large/small-object throughput capture
## Operational Commands
```bash
nix run ./nix/test-cluster#cluster -- status
nix run ./nix/test-cluster#cluster -- logs node01
nix run ./nix/test-cluster#cluster -- ssh node04
nix run ./nix/test-cluster#cluster -- matrix
nix run ./nix/test-cluster#cluster -- bench-storage
nix run ./nix/test-cluster#cluster -- fresh-matrix
nix run ./nix/test-cluster#cluster -- fresh-bench-storage
nix run ./nix/test-cluster#cluster -- stop
nix run ./nix/test-cluster#cluster -- clean
```
## Validation Philosophy
- package unit tests are useful but not sufficient
- host-built VM clusters are the main integration signal
- distributed storage and virtualization paths must be checked under failure, not only at steady state
## Legacy Note
Older manual launch scripts under `baremetal/vm-cluster` are archived only for historical reference. They are not the release-validation path.