Files
git.stella-ops.org/bench/golden-corpus

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

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