seokjin0414 opened a new pull request, #3554:
URL: https://github.com/apache/iggy/pull/3554

   ## What
   
   Adds BDD coverage for the C++ SDK by implementing the shared
   `bdd/scenarios/basic_messaging.feature` with cucumber-cpp and wiring it into
   the Docker-based BDD harness and CI, the same way the other SDKs run. This is
   the second part of #2965; the messaging FFI it relies on landed in #3046.
   
   ## How it works
   
   cucumber-cpp only supports the Cucumber wire protocol, so the step 
definitions
   compile (via Bazel) into a wire server, and a Ruby Cucumber runner 
(`cucumber` +
   `cucumber-wire`, pinned to the versions cucumber-cpp itself tests against) 
drives
   the feature file over the wire against a real `iggy-server`. The step logic 
and
   assertions are all C++ and exercise the SDK's FFI (`get_streams`, 
`create_stream`,
   `create_topic`, `send_messages`, `poll_messages`).
   
   The step definitions live under `foreign/cpp/bdd/` rather than `bdd/cpp/` 
because
   the Bazel workspace root is `foreign/cpp` and cannot reach the repo-level 
`bdd/`
   directory. `bdd/cpp/` holds the Ruby runner harness (Dockerfile, Gemfile,
   `cucumber.wire`).
   
   ## Heads-up for reviewers
   
   Because cucumber-cpp is wire-protocol-only, the C++ BDD image pulls in a Ruby
   runtime (`cucumber` + `cucumber-wire`). Flagging this explicitly in case it
   changes how you'd like the harness shaped.
   
   ## Verification
   
   Ran the suite locally against a real server and the scenario passes end to 
end
   (17 steps). The existing `//:unit` and `//:low-level-e2e` targets still 
build, and
   `MODULE.bazel.lock` is consistent under `lockfile_mode=error`.
   
   The TearDown fixture and the magic-number cleanup discussed on Discord are 
tracked
   separately by @slbotbm.
   
   Closes #2965
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to