Skip to content

S08.03 slice 7: wire Origin SD into FreeRTOS example (untag origin.feature) #308

Description

@DavidCozens

Parent epic: #268 (S08.03 — UDP syslog from FreeRTOS reaches the oracle)

Background

Slice 5 left the FreeRTOS example wiring no structured data (SolidSyslogConfig.sd = NULL); slice 6 (#307) closed the cmdline-flag gap so prival / message_fields / udp_mtu Full delivery now run on the FreeRTOS BDD runner. Slice 7 wires the first SD — Origin — bringing 4 of origin.feature's 5 scenarios into the green column.

Scope

Wire SolidSyslogOriginSd_Create into Example/FreeRtos/SingleTask/main.c::InteractiveTask using the same fixture pattern as the Linux/Windows examples:

  • software = "SolidSyslogExample" — hardcode in main.c, matching Example/SingleTask/SolidSyslogExample.c
  • swVersion = "0.7.0" — same; the BDD assertion is byte-exact
  • enterpriseId = EXAMPLE_ENTERPRISE_ID — from Example/Common/ExampleEnterpriseId.h
  • IP getters: reuse Example/Common/ExampleIps.c by adding it (and its include path) to the FreeRTOS source list in Example/FreeRtos/SingleTask/CMakeLists.txt. Same fake "192.0.2.1" as Linux/Windows.

Wire originSd into a sdList[1] and update SolidSyslogConfig.sd / .sdCount. Add destroy calls in reverse order in InteractiveTask.

Tag movement: drop the feature-level @freertoswip from origin.feature; keep scenario-level @freertoswip on scenario 5 only (All standard structured data present — also asserts sequenceId and tzKnown, which need meta SD + timeQuality SD wired in subsequent slices).

Out of scope

  • Real-IP enumeration via FreeRTOS_GetEndPoints / getifaddrs / GetAdaptersAddresses. Tracked as a follow-up to revisit at S08.03 (S08.03: UDP syslog from FreeRTOS reaches the oracle #268) closure.
  • Lifting software / swVersion to a shared Example/Common constant. Linux/Windows currently hardcode in their own main.c too; consistency wins for now.
  • Wiring meta SD or timeQuality SD. Subsequent slices.

Acceptance

  • behave --tags='not @wip and not @freertoswip and @udp' Bdd/features/origin.feature against syslog-ng-freertos: 4 of 5 scenarios pass, 1 skipped (All standard structured data present).
  • Full FreeRTOS BDD sweep: 5 features green, 14 scenarios passing (slice 6 baseline 4 / 10 plus slice 7's +1 / +4).
  • cmake --build --preset freertos-cross --target SolidSyslogFreeRtosSingleTask clean.
  • clang-format --dry-run --Werror on touched C files clean.
  • DEVLOG appended.

References

  • DEVLOG 2026-05-10 slice 6 — post-slice-6 @freertoswip residue.
  • Example/SingleTask/SolidSyslogExample.c::main — reference Origin SD wiring shape.
  • Core/Interface/SolidSyslogOriginSd.h — config struct + Create/Destroy.
  • Example/Common/ExampleIps.c — fake-fixture comment ("in real deployments this comes from getifaddrs(3) …"). Real-IP path deferred to S08.03 close.

Metadata

Metadata

Assignees

No one assigned

    Labels

    storyStory issue

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions