-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Please test and defend use of insert-gcov-profiling for coverage measurement #4868
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Hello, is there anybody I can lobby for this to be prioritized? Afaict this regression was now released in stable(!!!) and now all my builds are broken. |
@ctz I believe code coverage and such are unstable features in rustc so they don't have upstream support or stability guarantees, this is a feature which likely needs its own champion upstream in rustc before stability can be achieved. |
How does one go about finding such a champion? I kinda feel like this bug was me shouting "Hey! I'm walking here!" as soon as I saw breakage in nightly, but I got run over anyway. I presumed that this was the point of regularly testing with nightlies -- to prevent regressions making it to release :( |
Ah that'd either probably be championing it yourself or posting on internals to see if others are interested. You never know who might bite nowadays! |
- That a version is accepted - That you are selecting from the source a package which led to part of the confusion in rust-lang#4868 I wonder if we should rename our `CRATE` value names to `PKG`/`PACKAGE`
FYU there is rust-lang/rfcs#3287 for finding a way to get built-in support for cargo. The coverage landscape has changed a lot since this was opened. I'm going to close as this approach doesn't sound as relevant from what I've seen of coverage. If there is something I've missed, let us know and we can re-evaluate! |
This is a feature request (tangentially related to #4865) for cargo to include an integration test that ensures that this method of building code with coverage measurement enabled continues to work in future versions.
Here's documentation of how I currently do this for the
sct
andrustls
projects:Prerequisites: a compatible llvm installation, lcov, nightly rustc
cargo clean
and delete all.gcda
and.gcno
intermediate filescargo rustc --all-features --profile test --lib
, withRUSTC_WRAPPER
set to a shell script that addsCOVERAGE_OPTIONS
to the rustc invocation for a specific crate build (see below)../target/debug/sct-43d2a05ec780a9bc
lcov --gcov-tool ./admin/llvm-gcov --rc lcov_branch_coverage=1 --rc lcov_excl_line=assert --capture --directory . --base-directory . -o sct.info
.info
files into onecoverage.info
: runlcov --gcov-tool ./admin/llvm-gcov --rc lcov_branch_coverage=1 --rc lcov_excl_line=assert --add sct.info -o coverage.info
coverage.info
to remove uninteresting sources: runlcov --gcov-tool ./admin/llvm-gcov --rc lcov_branch_coverage=1 --rc lcov_excl_line=assert --extract coverage.info /home/full/path/to/sct/src/\* -o final.info
My
RUSTC_WRAPPER
program is:admin/llvm-gcov
is:This method works in
cargo 0.23.0 (61fa02415 2017-11-22)
but is broken incargo 0.25.0-nightly (e08f31018 2017-12-24)
(and not just due to #4865).The text was updated successfully, but these errors were encountered: