Skip to content

feat(cpp): run C++ SDK tests only against the VSR server - #3844

Merged
hubcio merged 2 commits into
masterfrom
ci/cpp-vsr-only
Aug 10, 2026
Merged

feat(cpp): run C++ SDK tests only against the VSR server#3844
hubcio merged 2 commits into
masterfrom
ci/cpp-vsr-only

Conversation

@hubcio

@hubcio hubcio commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

The C++ bindings were the last SDK exercised only against the legacy
server. Moving the e2e and BDD lanes to a vsr-built iggy-server-ng
meant rewriting every legacy-only expectation: logout drops the
client-table entry, flush_unsaved_buffer denies typed, cluster
metadata is readable pre-login, group ids are minted monotonically,
and a send reports the written offsets.

Four gaps surfaced as bugs. Stats hardcoded clients_count to 0 because
the sync read path could not run the cross-shard ListClients gather. A
poll against a missing stream or topic answered the generic
InvalidIdentifier. An over-count partition delete acked a no-op
instead of InvalidPartitionsCount. A purge acked before its counters
moved, so an immediate read saw pre-purge totals; the reset now runs
in the apply, gated on the purge generation because left-right replays
it on the second buffer after the ack.

@github-actions github-actions Bot added the S-waiting-on-review PR is waiting on a reviewer label Aug 8, 2026
@codecov

codecov Bot commented Aug 8, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 64.38356% with 130 lines in your changes missing coverage. Please review.
✅ Project coverage is 76.09%. Comparing base (6cbf47a) to head (758e581).
⚠️ Report is 1 commits behind head on master.

Files with missing lines Patch % Lines
core/simulator/src/workload/shadow.rs 8.57% 61 Missing and 3 partials ⚠️
...re/simulator/src/workload/ops/delete_partitions.rs 0.00% 28 Missing ⚠️
core/server-ng/src/responses.rs 0.00% 14 Missing ⚠️
...re/simulator/src/workload/ops/create_partitions.rs 0.00% 8 Missing ⚠️
core/server-ng/src/dispatch.rs 0.00% 6 Missing ⚠️
core/metadata/src/stm/stream.rs 97.86% 5 Missing ⚠️
core/server-ng/src/http/reads.rs 0.00% 5 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##             master    #3844      +/-   ##
============================================
- Coverage     76.98%   76.09%   -0.89%     
- Complexity     1021     1316     +295     
============================================
  Files          1366     1378      +12     
  Lines        175906   177209    +1303     
  Branches     145834   146337     +503     
============================================
- Hits         135413   134843     -570     
- Misses        36619    38358    +1739     
- Partials       3874     4008     +134     
Components Coverage Δ
Rust Core 76.05% <64.38%> (-0.04%) ⬇️
Java SDK 66.40% <ø> (+3.18%) ⬆️
C# SDK 56.34% <ø> (-19.73%) ⬇️
Python SDK 89.98% <ø> (ø)
PHP SDK 82.97% <ø> (ø)
Node SDK 96.36% <ø> (+0.15%) ⬆️
Go SDK 69.13% <ø> (ø)
Files with missing lines Coverage Δ
core/metadata/src/stm/result.rs 92.17% <ø> (ø)
core/simulator/src/workload/effect.rs 0.00% <ø> (ø)
core/metadata/src/stm/stream.rs 77.55% <97.86%> (+2.79%) ⬆️
core/server-ng/src/http/reads.rs 16.55% <0.00%> (-0.60%) ⬇️
core/server-ng/src/dispatch.rs 40.01% <0.00%> (-0.09%) ⬇️
...re/simulator/src/workload/ops/create_partitions.rs 17.02% <0.00%> (-2.50%) ⬇️
core/server-ng/src/responses.rs 41.15% <0.00%> (-0.17%) ⬇️
...re/simulator/src/workload/ops/delete_partitions.rs 0.00% <0.00%> (ø)
core/simulator/src/workload/shadow.rs 29.96% <8.57%> (-6.36%) ⬇️

... and 125 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

slbotbm
slbotbm previously approved these changes Aug 8, 2026
numinnex
numinnex previously approved these changes Aug 10, 2026
mmodzelewski
mmodzelewski previously approved these changes Aug 10, 2026
spetz
spetz previously approved these changes Aug 10, 2026
hubcio added 2 commits August 10, 2026 15:56
The C++ bindings were the last SDK exercised only against the legacy
server. Moving the e2e and BDD lanes to a vsr-built iggy-server-ng
meant rewriting every legacy-only expectation: logout drops the
client-table entry, flush_unsaved_buffer denies typed, cluster
metadata is readable pre-login, group ids are minted monotonically,
and a send reports the written offsets.

Four gaps surfaced as bugs. Stats hardcoded clients_count to 0 because
the sync read path could not run the cross-shard ListClients gather. A
poll against a missing stream or topic answered the generic
InvalidIdentifier. An over-count partition delete acked a no-op
instead of InvalidPartitionsCount. A purge acked before its counters
moved, so an immediate read saw pre-purge totals; the reset now runs
in the apply, gated on the purge generation because left-right replays
it on the second buffer after the ack.
server-ng now denies a poll of a missing stream or topic with the
typed not-found rejection instead of a status-0 empty poll, so the
TCP suite pin of the old empty-poll reply fails with code 2010.
Fold the TCP case into the throw expectation the HTTP variant
already carries.
@hubcio
hubcio dismissed stale reviews from spetz, mmodzelewski, and numinnex via 758e581 August 10, 2026 13:57
@hubcio
hubcio merged commit 00840d1 into master Aug 10, 2026
104 checks passed
@hubcio
hubcio deleted the ci/cpp-vsr-only branch August 10, 2026 14:11
@github-actions github-actions Bot removed the S-waiting-on-review PR is waiting on a reviewer label Aug 10, 2026
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.

5 participants