Skip to content

fix(adapters): iceoryx2 spin real-time guard + fluvio test marker#402

Open
0-jake-0 wants to merge 1 commit into
mainfrom
claude/adapter-compliance-high-fixes
Open

fix(adapters): iceoryx2 spin real-time guard + fluvio test marker#402
0-jake-0 wants to merge 1 commit into
mainfrom
claude/adapter-compliance-high-fixes

Conversation

@0-jake-0

@0-jake-0 0-jake-0 commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Part 1 of 4 from an adapter compliance review against the new-adapter skill. These are the two high-severity behavioral findings.

1. iceoryx2 spin mode does not reject non-real-time runs

Iceoryx2ReceiverNode::start() called state.always_callback() in Spin mode without checking the run mode. A HistoricalFrom (backtest) run would therefore busy-spin against a live IPC socket instead of failing fast. The skill's spin-loop pattern (step 7) requires a run_mode() != RealTime bail guard, which the FIX spin source already has.

Added the guard at both Spin start() sites in iceoryx2/read.rs (typed + slice subscribers):

Iceoryx2Mode::Spin => {
    if state.run_mode() != crate::RunMode::RealTime {
        anyhow::bail!("iceoryx2 spin mode only supports real-time");
    }
    state.always_callback();
    ...

2. fluvio Python tests silently skip

test_fluvio.py gated its live-cluster suites with @unittest.skipUnless(FLUVIO_AVAILABLE, ...) driven by a TCP probe — the exact "never silently skip" anti-pattern the skill forbids (step 13.f). With no requires_fluvio marker registered, the default pytest run could be falsely green against a down cluster.

  • Replaced both skipUnless decorators with @pytest.mark.requires_fluvio.
  • Removed the fluvio_available() TCP probe and the now-unused socket/urllib imports.
  • Registered the requires_fluvio marker in pyproject.toml and added it to the default addopts deselect list, so live tests fail loudly under -m requires_fluvio and are skipped by default.

The construction / unreachable unit suites are unchanged — they still run by default with no marker.

Verification

  • cargo check -p wingfoil --features iceoryx2 passes.
  • cargo fmt --all clean.
  • python -m py_compile tests/test_fluvio.py passes; no stale probe references remain; marker registered in both markers and addopts.

https://claude.ai/code/session_01JLqvwSW8V4xPpvxV1vwXuX


Generated by Claude Code

…ests

Two adapter-skill compliance fixes:

- iceoryx2: the Spin subscriber called `state.always_callback()` without
  guarding against historical mode, so a backtest would busy-spin against a
  live IPC socket instead of erroring. Add the `run_mode() != RealTime` bail
  guard the spin-loop pattern prescribes, matching the FIX spin source.

- fluvio Python tests: replace the `@unittest.skipUnless(FLUVIO_AVAILABLE)`
  TCP-probe with a `requires_fluvio` pytest marker so the live-cluster tests
  fail loudly under `-m requires_fluvio` instead of silently skipping (and
  never falsely green the default run). Register the marker and add it to the
  default deselect list.
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.

2 participants