chore: S24.04 retire Linux SingleTask example binary#334
Conversation
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (15)
💤 Files with no reviewable changes (5)
📝 WalkthroughWalkthroughThis PR consolidates Linux example binaries by retiring the SingleTask binary and moving all Linux BDD tests to use the Threaded binary. The change includes CI workflow narrowing, BDD helper refactoring, source removal, and documentation updates. ChangesExample Binary Consolidation
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related issues
Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
☀️ Quality Summary 🚦 build-linux-gcc: 100% successful (✔️ 1111 passed, 🙈 3 skipped) Created by Quality Monitor v1.14.0 (#f3859fd). More details are shown in the GitHub Checks Result. |
Purpose
Closes #332.
Example/SingleTask/(Linux,NullBuffer, direct UDP/TCP) andExample/Threaded/(Linux,PosixMessageQueueBuffer+ servicethread, SwitchingSender) were two binaries doing overlapping jobs.
The Threaded binary's SwitchingSender + BlockStore wiring is a
strict superset since S15 introduced SwitchingSender. Windows
already collapsed to one binary in S13.20, FreeRTOS in S08.04 slice
2 — Linux was the last platform carrying two. This story retires
the SingleTask binary and points the Linux BDD harness at the
Threaded one. Renaming/moving the remaining binary is S24.05 #333.
Change Description
Bdd/features/environment.py— Linux defaultcontext.example_binaryflips frombuild/debug/Example/SolidSyslogExampletobuild/debug/Example/SolidSyslogThreadedExample.Bdd/features/steps/syslog_steps.pyrun_threaded_example/run_buffered_examplecollapse intorun_example. The three feature phrasings (the exampleprogram, the threaded example, the buffered example) stay
distinct in
.featureprose so scenario intent reads cleanly;their Python step decorators all dispatch to one helper.
run_examplepins--app-name "SolidSyslogExample"onnon-FreeRTOS targets so Linux records carry the same APP-NAME
string Windows already does (binary basename differs across
runners). FreeRTOS hardcodes the same string in its example
main and has no
getoptport, so the flag is skipped there.THREADED_BINARYconstant removed;build_threaded_commanddrops its
oracle_formatbranch and usescontext.example_binarydirectly.Bdd/features/steps/target_driver.py— docstring updated toreflect single-binary-per-runner.
Example/SingleTask/deleted (3 files);Example/CMakeLists.txtdrops the
add_executable(SolidSyslogExample …)block.Tests/Example/SolidSyslogExampleTest.cppdeleted;Tests/Example/CMakeLists.txtdrops its source-list entries andthe SingleTask include directory.
.github/workflows/ci.yml— dropsSolidSyslogExamplefrombuild targets, artifact uploads, and
chmod +xsteps.README.md,Bdd/README.md,docs/bdd.md,CLAUDE.md—rewritten where they enumerated SingleTask / Threaded as
separate examples.
Pre-flip audit (per the story scope)
Every
run_examplecaller routes through_run_with_prompt_protocol→wait_for_messages, which polls theoracle for receipt before sending
quit. NullBuffer's synchronoussend was never load-bearing on assertions; the prompt protocol
already coordinated the buffered drain on Windows since S13.18.
Confirmed by running the full Linux BDD suite — 44 scenarios pass
post-flip.
Test Evidence
Local CI presets (run inside the gcc / clang devcontainers):
debug(build-linux-gcc) — 1108 tests / 1105 ran (3 ignored,platform-skipped), 2393 checks, 0 failures
clang-debug(build-linux-clang) — same totals, ExampleTestsre-run clean
sanitize— same totals, ASan + UBSan cleancoverage— overall 99.5% lines (2107 / 2117), 98.9% functions(449 / 454) — well above the 90% gate
tidy— clean (after dropping SingleTask sources)cppcheck— clean--dry-run --Werrorover Core / Tests / Example — cleanLinux BDD:
Areas Affected
Example/—SingleTask/directory removed;Threaded/is nowthe sole Linux example.
Tests/Example/—SolidSyslogExampleTest.cppremoved;ExampleTestsshrinks accordingly.Bdd/— Linux runner now drives the Threaded binary; stephelpers collapse to one path.
reference
SolidSyslogExample.OUTPUT_NAMEremains
SolidSyslogExample); FreeRTOS unchanged.🤖 Generated with Claude Code
Summary by CodeRabbit
Release Notes
Deprecated
Documentation