I am currently trying to measure our code coverage using the source-based-code-coverage in a project with rust and c source code.
If I add the sources argument to "cargo cov -- show", I only get the covered c files (no rust files shown at all). This might be a bug in llvm-cov (?).
edit: the above was not true, but the behaviour is very odd. e.g. I cannot just filter by the common parent directory. And if I just filter by the sub directory with the rust code, I also get dependencies and stuff outside of this directory.
I guess, I can adapt the build.rs to only instrument my own c code (That would solve the problem for the c dependencies).
Can I pass the -Zinstrument-coverage only to my own code somehow?
If I add it to the RUSTFLAGS or the [build]-section, it gets applied to all rust sources (including the dependencies, that I do not want to check).
Ok, I should also check the content of the env variable, but this is the idea for the solution. Now I only need to fix this for the rust-dependencies. I can use cargo rustc, but then I do not check the coverage of my own dependencies, b/c using cargo rustc I can only pass parameters to one package.
After adding --ignore-filename-regex='/.cargo/registry' the report looks good. I think, it would be a cleaner solution to not instrument the rust dependencies in the first place, but this works for me. I do not know yet, how big the profile will be after running our full test suite (or how much this impacts performance).