# Golden Test Corpus This directory contains the golden test corpus for StellaOps validation. Each test case is a complete, reproducible scenario with known-good inputs and expected outputs. ## Schema Version **Corpus Version**: `1.0.0` **Run Manifest Schema**: `1.0.0` **Evidence Index Schema**: `1.0.0` **OpenVEX Schema**: `0.2.0` **SPDX Version**: `3.0.1` **CycloneDX Version**: `1.6` ## Directory Structure ``` bench/golden-corpus/ ├── README.md ├── corpus-manifest.json ├── corpus-version.json ├── categories/ │ ├── severity/ │ ├── vex/ │ ├── reachability/ │ ├── unknowns/ │ ├── scale/ │ ├── distro/ │ ├── interop/ │ ├── negative/ │ └── composite/ └── shared/ ├── policies/ ├── feeds/ └── keys/ ``` ## Test Case Format Each test case directory contains: | Path | Description | |------|-------------| | `case-manifest.json` | Case metadata | | `run-manifest.json` | Run manifest for replay | | `input/sbom-cyclonedx.json` | CycloneDX SBOM input | | `input/sbom-spdx.json` | SPDX SBOM input | | `input/image.tar.gz` | Image tarball (fixture) | | `expected/verdict.json` | Expected verdict output | | `expected/evidence-index.json` | Expected evidence index | | `expected/unknowns.json` | Expected unknowns output | | `expected/delta-verdict.json` | Expected delta verdict | ## Running Corpus Scripts ```bash python3 scripts/corpus/validate-corpus.py python3 scripts/corpus/generate-manifest.py python3 scripts/corpus/check-determinism.py python3 scripts/corpus/add-case.py --category severity --name SEV-009 ``` ## Versioning Policy - **Patch** (1.0.x): Add new cases, fix existing case data - **Minor** (1.x.0): Algorithm tuning that preserves relative ordering - **Major** (x.0.0): Algorithm changes that alter expected outputs When algorithms change: 1. Increment corpus version 2. Regenerate case outputs 3. Update `corpus-manifest.json`