fix(nim-bindings): add all-endpoints test and fix installation_name ABI (#66)

Add nim-bindings/tests/test_all_endpoints.nim which imports bindings
directly and calls every FFI proc, forcing the linker to include all
symbols. This catches link-time and runtime issues that the pingpong
example missed because unused symbols were optimised out.

Running the new test revealed an ABI mismatch in installation_name:
the Rust function used an explicit out-parameter but ReprCString has
only flat fields, so Nim emits it as a C return value.

CI now runs nimble test next to nimble pingpong.
This commit is contained in:
osmaczko
2026-02-28 21:03:55 +01:00
committed by GitHub
parent 1158865bf2
commit d006f20bce
8 changed files with 289 additions and 5 deletions
+2
View File
@@ -52,5 +52,7 @@ jobs:
echo "$HOME/.nimble/bin" >> $GITHUB_PATH
- run: nimble install -dy
working-directory: nim-bindings
- run: nimble test
working-directory: nim-bindings
- run: nimble pingpong
working-directory: nim-bindings