# Testing FFI code If `cargo-valgrind` is broken, you may run `valgrind` manually. 1. `cargo test -v` 2. find the relevant test suite executable in the log - example: `/home/user/src/nix-bindings-rust/target/debug/deps/nix_util-036ec381a9e3fd6d` 3. `valgrind --leak-check=full ` 4. check that - `definitely lost: 0 bytes in 0 blocks` ## Paranoid check Although normal valgrind tends to catch things, you may choose to enable `--show-leak-kinds=all`. This will print a few false positive. Acceptable leaks are those involving (and this may be Linux-specific) - `call_init`: static initializers - `nix::GlobalConfig::Register::Register` - `_GLOBAL__sub_I_logging.cc` - ... - `new`: a leak in the rust test framework When in doubt, compare the log to a run with your new test case commented out.