Skip to content

Commit 7e3547a

Browse files
kalwaltclaude
andcommitted
test(ci): verify ffi-backend tests + example link on macOS (#119)
PR #117 fixed build.rs to link libc++ (not libstdc++) on Apple targets, but its dual-mode CI step was scoped to --lib, so the integration tests and the generate_patt example were never re-built on macOS after the fix. This left open whether the libc++ fix was sufficient or whether a separate macOS linker issue remained. Add a macOS-gated step to the kpm-build matrix that builds the ffi-backend integration tests (--no-run) and the generate_patt example, confirming they link against libc++. Use --no-run because executing the pose-sensitive assertions cross-platform is out of scope — that float-drift question is tracked in #118, which keeps test_full_pipeline_pose gated to Linux. Refs #119 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 63bda44 commit 7e3547a

1 file changed

Lines changed: 22 additions & 0 deletions

File tree

.github/workflows/ci.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,28 @@ jobs:
115115
- name: Build kpm backend (FFI backend)
116116
run: cargo build -p webarkitlib-rs --features ffi-backend
117117

118+
# macOS ffi-backend link verification (#119). PR #117 fixed build.rs to
119+
# link libc++ (not libstdc++) on Apple targets, but the dual-mode CI step
120+
# was scoped to --lib, so the integration tests and the generate_patt
121+
# example were never re-built on macOS after the fix. Build them here to
122+
# confirm they link against libc++.
123+
#
124+
# --no-run (not a full run): this verifies the linker fix only. Actually
125+
# executing the pose-sensitive integration tests cross-platform is out of
126+
# scope — that float-drift question is tracked separately in #118, which
127+
# keeps test_full_pipeline_pose gated to Linux.
128+
- name: Verify ffi-backend tests + example link (macOS)
129+
if: runner.os == 'macOS'
130+
run: |
131+
cargo test -p webarkitlib-rs \
132+
--test kpm_regression \
133+
--test nft_pipeline \
134+
--test ar2_pinball_io \
135+
--test cross_stack_parity \
136+
--features ffi-backend --no-run
137+
cargo build -p webarkitlib-rs \
138+
--example generate_patt --features log-helpers,ffi-backend
139+
118140
# Dual-mode tests run pure-Rust ports against the C++ baseline via the
119141
# FFI backend (webarkit_cpp_* shims) and assert byte-level parity.
120142
# Catches regressions that would otherwise only surface in local runs.

0 commit comments

Comments
 (0)