Skip to content

Validation suites against real Ceedling releases (just validate) - #29

Merged
mkarlesky merged 3 commits into
next_versionfrom
feature/validation-suite
Oct 25, 2026
Merged

mkarlesky merged 3 commits into
next_versionfrom
feature/validation-suite

Conversation

@mkarlesky

Copy link
Copy Markdown
Member

Adds the real-Ceedling validation suites to the repo, so anyone can rerun the checks behind the 1.2.1 work. just validate <version> [suite] compiles the tests in the sidecar, then runs each suite in throwtheswitch/madsciencelab-plugins:<version> with the sidecar's Node added (sidecar/validate.Dockerfile). The suites drive the compiled CeedlingEngine with only settings, the logger, and the Problems panel stubbed, so every Ceedling command is real.

Suites (tests/validation/)

Suite Checks Versions
stress Random overlapping runs, debug builds, discoveries, reparses, and cleans across four projects, with random cancellation; --shared-build-root gives them one build root All
coverage Exact gcovr and ReportGenerator outcomes, then coverage overlapping everything else All (ReportGenerator checks skip on 1.0.0)
gated Per-version command lines on same-named test files 1.2.0+
layout Exact test build directories with two test roots; namesake counters kept 1.2.0+ (coverage 1.2.1+)
latency Rediscovery time during a build All, not in all

Probes (probe:fixes, probe:syscalls, probe:overlap) show Ceedling's own behavior behind the engine's choices.

The suites are TypeScript compiled with the tests, so they typecheck against the engine and pass lint with 0 findings. Docs: Development.md §5 (new; manual plan and sidecar renumbered), Architecture.md (evidence for lock-free discovery on 1.2.1, the Ceedling#1364 layouts, test seams), KnownIssues (Ceedling#1364), sidecar README.

Verification

  • just validate <v> all 45 on 1.2.1, 1.2.0, 1.1.10, 1.0.0: 0 violations each, about 3 minutes per version.
  • Probes and latency on 1.2.1 and 1.2.0: on 1.2.1, discovery writes nothing; on 1.2.0, it writes 10 times. Rediscovery takes 0.85 s idle and about 4.7 s during a build.
  • Mutation check: an engine that clears every counter fails layout, and one that names gcov: tasks bare on 1.2.1 fails gated (27 violations).
  • just test: 458 unit and 18 integration tests pass. just lint: 0 findings.
  • An independent review's findings were fixed: layout coverage gated to 1.2.1; argument validation; suite-name validation; a racy executable check in stress replaced by the engine's own check, which runs under its lock; latency given a slow test so it measures; doc defaults corrected.

🤖 Generated with Claude Code

mkarlesky and others added 3 commits October 24, 2026 14:50
…lidate`

The suites drive the compiled engine inside a Ceedling release's image, with
the sidecar's Node: concurrency stress, coverage, per-version command lines,
and test build directories, plus probes of the Ceedling behavior the engine's
design rests on.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…discovery evidence

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…dling#1364)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@mkarlesky
mkarlesky merged commit e04a7bd into next_version Oct 25, 2026
3 checks passed
@mkarlesky
mkarlesky deleted the feature/validation-suite branch October 25, 2026 16:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant