Phase 0: Workload generator interface #53

Merged
erikinkinen merged 3 commits from 0-workload-generator-interface into main 2026-02-17 08:23:04 +01:00
Owner

Closes #11


Summary

This PR adds a Phase 0 workload interface with explicit, versioned parameters and introduces a deterministic scripted workload mode for tests. It also wires new tests that validate workload parameter defaults and scripted execution from JSON scripts, enabling reproducible, declarative test traces.


Scope

Included

  • Workload interface and parameter structs with run/workload separation
  • Scripted workload runner (JSON-based) for deterministic test scripts
  • Example script and unit tests covering parameter defaults and scripted runs
  • Test target wiring for new workload tests

Explicitly excluded

  • Production runtime integration of scripted workloads
  • YAML support or external parsing dependencies beyond the minimal JSON parser
  • Semantics beyond Phase 0 (revocation, provenance, etc.)

Design intent

The workload interface is intentionally small and explicit, with versioned parameters to preserve reproducibility and forward compatibility. Scripted workloads are built for tests: no RNG use, handle-based IDs, and strict validation so failures are loud and deterministic. The JSON script format is minimal and deterministic to avoid introducing heavy dependencies in Phase 0.


Phase discipline

Phase 0-only: deterministic, event-driven updates, no semantic authority behavior. Scripted workloads strictly use engine-allocated IDs and event application. Reserved fields (e.g., revoke, checkpoint_interval) are present but defaulted to inert values.


Verification

  • Tests pass
  • Model is internally consistent
  • Documentation updated
  • No regressions in existing functionality

Notes

Reviewers: focus on deterministic behavior, handle mapping rules, and error paths in the scripted runner.

Closes #11 --- ## Summary This PR adds a Phase 0 workload interface with explicit, versioned parameters and introduces a deterministic scripted workload mode for tests. It also wires new tests that validate workload parameter defaults and scripted execution from JSON scripts, enabling reproducible, declarative test traces. --- ## Scope ### **Included** - Workload interface and parameter structs with run/workload separation - Scripted workload runner (JSON-based) for deterministic test scripts - Example script and unit tests covering parameter defaults and scripted runs - Test target wiring for new workload tests ### **Explicitly excluded** - Production runtime integration of scripted workloads - YAML support or external parsing dependencies beyond the minimal JSON parser - Semantics beyond Phase 0 (revocation, provenance, etc.) --- ## Design intent The workload interface is intentionally small and explicit, with versioned parameters to preserve reproducibility and forward compatibility. Scripted workloads are built for tests: no RNG use, handle-based IDs, and strict validation so failures are loud and deterministic. The JSON script format is minimal and deterministic to avoid introducing heavy dependencies in Phase 0. --- ## Phase discipline Phase 0-only: deterministic, event-driven updates, no semantic authority behavior. Scripted workloads strictly use engine-allocated IDs and event application. Reserved fields (e.g., revoke, checkpoint_interval) are present but defaulted to inert values. --- ## Verification - [ ] Tests pass - [ ] Model is internally consistent - [ ] Documentation updated - [ ] No regressions in existing functionality --- ## Notes Reviewers: focus on deterministic behavior, handle mapping rules, and error paths in the scripted runner.
erikinkinen added this to the Phase 0 milestone 2026-02-17 08:22:19 +01:00
Define workload interface (next_event) (#11)
All checks were successful
ci / smoke (push) Successful in 9s
clang-format / check-format (push) Successful in 8s
markdownlint / markdown-lint (push) Successful in 9s
c043393e55
Define workload parameter struct (#11)
All checks were successful
ci / smoke (push) Successful in 9s
clang-format / check-format (push) Successful in 8s
markdownlint / markdown-lint (push) Successful in 11s
8e81776763
Implement scripted workload mode for tests (#11)
All checks were successful
ci / smoke (push) Successful in 11s
clang-format / check-format (push) Successful in 8s
markdownlint / markdown-lint (push) Successful in 10s
ci / smoke (pull_request) Successful in 10s
clang-format / check-format (pull_request) Successful in 8s
markdownlint / markdown-lint (pull_request) Successful in 11s
98a193571f
Sign in to join this conversation.
No reviewers
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
erikinkinen/AES!53
No description provided.