Add tests for SBOM generation determinism across multiple formats

- Created `StellaOps.TestKit.Tests` project for unit tests related to determinism.
- Implemented `DeterminismManifestTests` to validate deterministic output for canonical bytes and strings, file read/write operations, and error handling for invalid schema versions.
- Added `SbomDeterminismTests` to ensure identical inputs produce consistent SBOMs across SPDX 3.0.1 and CycloneDX 1.6/1.7 formats, including parallel execution tests.
- Updated project references in `StellaOps.Integration.Determinism` to include the new determinism testing library.
This commit is contained in:
master
2025-12-23 18:56:12 +02:00
parent 7ac70ece71
commit bc4318ef97
88 changed files with 6974 additions and 1230 deletions

View File

@@ -7,6 +7,11 @@ Envelope types
- Orchestrator events: versioned envelopes with idempotency keys and trace context.
- Legacy Redis envelopes: transitional schemas used for older consumers.
Event catalog (examples)
- scanner.event.report.ready@1 and scanner.event.scan.completed@1 (orchestrator envelopes).
- scanner.report.ready@1 and scanner.scan.completed@1 (legacy Redis envelopes).
- scheduler.rescan.delta@1, scheduler.graph.job.completed@1, attestor.logged@1.
Orchestrator envelope fields (v1)
- eventId, kind, version, tenant
- occurredAt, recordedAt
@@ -26,6 +31,8 @@ Versioning rules
Validation
- Schemas and samples live under docs/events/ and docs/events/samples/.
- Offline validation uses ajv-cli; keep schema checks deterministic.
- Validate schemas with ajv compile and validate samples against matching schemas.
- Add new samples for each new schema version.
Related references
- docs/events/README.md