grcov, and it works pretty well for a plain
cargo test, which tests the library and its only binary
However, for the C API tests there is a small
api.c test program, which links to librsvg and then gets run. I don't seem to be getting code coverage information for the Rust code that implements the C API. For that test program,
main() comes from the C code, and it calls a bunch of Rust code from
Does anyone know how to do this - get coverage for a Rust library called from a main C program?
This is librsvg's CI script for coverage, by the way. You can see that
src/c_api/*.rs has basically no coverage information, even though pretty much all of that code gets called. (The coverage that is there for that directory comes from Rust tests.)