tarpaulin
tarpaulin copied to clipboard
Compile error: linking with `cc` failed
Info
running tarpaulin in a docker for gitlab-ci
Error
I get the following error on step cargo +nightly tarpaulin --all-features
error: build failed
[ERROR tarpaulin] Failed to compile tests! Error: linking with `cc` failed: exit code: 1
Error: "Failed to compile tests! Error: linking with `cc` failed: exit code: 1"
Do you have an example project I could try this out on locally?
Also noted in #525 with an example project https://github.com/rcore-os/zCore/pull/136/checks?check_run_id=962147609 I'm having a look at this today
I got this issue in my pipeline after I update my dependencies.
In that list was: cc
It changed from version:
version = "1.0.58"
To:
version = "1.0.59"
After this my project failed to build. Same error as above:
error: could not compile `...`.
To learn more, run the command again with --verbose.
[ERROR tarpaulin] Failed to compile tests! Error: linking with `cc` failed: exit code: 1
Error: "Failed to compile tests! Error: linking with `cc` failed: exit code: 1"
However local GitLab runner (that does not have access to the caches from GitLab) completed without any problems.
So knowing this I cleared my caches and restarted the job.
(for local cache cleanup use cargo clean
)
This fixed the problem.
TL;DR: create caches!
So I just tried tarpaulin 0.16.0 on a project with CC that failed with this error, and then my latest one with some linker based changes on it and it worked. I'll be releasing a 0.17.0 this week and would love to hear if this issue is now solved for you all :smile:
@xd009642
Oh, I encountered the same mistake in github-actions. In version 0.17.0
I don't know how to do it.
Nov 15 05:21:17.353 ERROR cargo_tarpaulin: Failed to compile tests! Error: linking with `cc` failed: exit code: 1
Error: "Failed to compile tests! Error: linking with `cc` failed: exit code: 1"
https://github.com/sdttttt/gcr/runs/1401758353?check_suite_focus=true
It suddenly works again today. I don't know what happened to....🐶
For a number of people hopefully once this is closed (cargo PR done by alex) and the next cargo is released this issue should go away https://github.com/rust-lang/cargo/issues/9220
I now have this problem again in another project. It works locally but not on CI. Also tried running docker container locally but could not reproduce it. Although CI consistently fails. I first hit (I think) and infinite loop because my build hit the limit of 60min (usually take about 16min to run CI). But did not get any errors from this.
I updated tarpaulin and nightly versions in container. And now I don't hit time limit anymore but this error. Still works fine locally with exact same docker containers.
I have no idea what causes this to happen. The only think that changes between commits was that I added some more tests. Tests works perfectly fine locally and code was similar to other existing tests.
The error occurs when it is trying to create the binary or at last stage of compiling. (it finished building all crates and maybe also the tests) This makes sense as the error is with the linking.
Nothing special about error message:
Compiling main v0.2.0 (/workspace/main)
error: could not compile `services`
To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error: Broken pipe (os error 32)
error: build failed
ERROR cargo_tarpaulin: Failed to compile tests! Error: services: linking with `cc` failed: exit status: 1
Error: "Failed to compile tests! Error: services: linking with `cc` failed: exit status: 1"
Hope this helps in some way, if you need more info, let me know.
Current version of docker container: cargo-tarpaulin: v0.18.0 cargo 1.55.0-nightly (9233aa06c 2021-06-22) rustc 1.55.0-nightly (868c702d0 2021-06-30)
Also checked: cargo-tarpaulin: v0.18.0 rustc 1.55.0-nightly (b3d11f95c 2021-07-04)
I now have this problem again in another project. It works locally but not on CI. Also tried running docker container locally but could not reproduce it. Although CI consistently fails. I first hit (I think) and infinite loop because my build hit the limit of 60min (usually take about 16min to run CI). But did not get any errors from this.
I updated tarpaulin and nightly versions in container. And now I don't hit time limit anymore but this error. Still works fine locally with exact same docker containers.
I have no idea what causes this to happen. The only think that changes between commits was that I added some more tests. Tests works perfectly fine locally and code was similar to other existing tests.
The error occurs when it is trying to create the binary or at last stage of compiling. (it finished building all crates and maybe also the tests) This makes sense as the error is with the linking.
Nothing special about error message:
Compiling main v0.2.0 (/workspace/main) error: could not compile `services` To learn more, run the command again with --verbose. warning: build failed, waiting for other jobs to finish... error: Broken pipe (os error 32) error: build failed ERROR cargo_tarpaulin: Failed to compile tests! Error: services: linking with `cc` failed: exit status: 1 Error: "Failed to compile tests! Error: services: linking with `cc` failed: exit status: 1"
Hope this helps in some way, if you need more info, let me know.
Current version of docker container: cargo-tarpaulin: v0.18.0 cargo 1.55.0-nightly (9233aa06c 2021-06-22) rustc 1.55.0-nightly (868c702d0 2021-06-30)
Also checked: cargo-tarpaulin: v0.18.0 rustc 1.55.0-nightly (b3d11f95c 2021-07-04)
Maybe this can reproduce it.
cargo tarpaulin --verbose -p services --no-fail-fast --timeout 300 --out Xml
Having the same issue with this.
I also stumbled upon this problem trying to generate code coverage for https://github.com/ArekPiekarz/rusty-git-gui, using command cargo tarpaulin
.
I had the same issue with cargo-tarpaulin 0.18.0-alpha3
on nightly
toolchain (on GitHub actions):
error: could not compile `gpg-tui` due to 2 previous errors
warning: build failed, waiting for other jobs to finish...
error: Broken pipe (os error 32)
error: build failed
Sep 01 23:10:12.542 ERROR cargo_tarpaulin: Failed to compile tests! Error: gpg-tui: linking with `cc` failed: exit status: 1
Error: "Failed to compile tests! Error: gpg-tui: linking with `cc` failed: exit status: 1"
Error: Process completed with exit code 1.
Then I switched to grcov
for testing and it revealed that one of the build dependencies was missing:
= note: /usr/bin/ld: cannot find -lxkbcommon
collect2: error: ld returned 1 exit status
error: build failed
Solution was adding this build dependency to my CI and voila! "cargo-☔" works as expected.
I wish that the first error message was more clear.
@orhun Unfortunately I already had libxkbcommon installed when I tried to run cargo tarpaulin
.
With the new version 0.18.2 I get the following end of log:
cargo tarpaulin -v
(...)
Running `rustc --crate-name rusty_git_gui --edition=2018 src/main.rs --error-format=json --json=diagnostic-rendered-ansi --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 --test -C metadata=5c69e6a48b5e5a13 -C extra-filename=-5c69e6a48b5e5a13 --out-dir /home/user/dev/project/rusty-git-gui/target/debug/deps -C incremental=/home/user/dev/project/rusty-git-gui/target/debug/incremental -L dependency=/home/user/dev/project/rusty-git-gui/target/debug/deps --extern anyhow=/home/user/dev/project/rusty-git-gui/target/debug/deps/libanyhow-945d6b13367395d1.rlib --extern dirs=/home/user/dev/project/rusty-git-gui/target/debug/deps/libdirs-8f097f2b27b669d7.rlib --extern git2=/home/user/dev/project/rusty-git-gui/target/debug/deps/libgit2-74e2ca32b47fd688.rlib --extern gtk=/home/user/dev/project/rusty-git-gui/target/debug/deps/libgtk-0e7c617db8a6976c.rlib --extern gtk_test=/home/user/dev/project/rusty-git-gui/target/debug/deps/libgtk_test-a03e23045d5dae9e.rlib --extern itertools=/home/user/dev/project/rusty-git-gui/target/debug/deps/libitertools-970d5eb1c3a769d2.rlib --extern pretty_assertions=/home/user/dev/project/rusty-git-gui/target/debug/deps/libpretty_assertions-05ffe319a8648e5d.rlib --extern ini=/home/user/dev/project/rusty-git-gui/target/debug/deps/libini-897cf72cfd5d951e.rlib --extern rusty_fork=/home/user/dev/project/rusty-git-gui/target/debug/deps/librusty_fork-85b662c60a2202a5.rlib --extern rusty_git_gui=/home/user/dev/project/rusty-git-gui/target/debug/deps/librusty_git_gui-c592c5b755857dfc.rlib --extern similar=/home/user/dev/project/rusty-git-gui/target/debug/deps/libsimilar-d19def79271c337b.rlib --extern tempfile=/home/user/dev/project/rusty-git-gui/target/debug/deps/libtempfile-5ea452e1e0d6d46b.rlib -C debuginfo=2 --cfg=tarpaulin -C link-dead-code -L native=/usr/lib`
error: Broken pipe (os error 32)
warning: build failed, waiting for other jobs to finish...
error: Broken pipe (os error 32)
error: build failed
Sep 06 19:37:38.621 ERROR cargo_tarpaulin: Failed to compile tests! Error: rusty-git-gui: linking with `cc` failed: exit status: 1
Error: "Failed to compile tests! Error: rusty-git-gui: linking with `cc` failed: exit status: 1"
Tested on Manjaro, Rust 1.54.
After trying grcov, I got more info:
$ CARGO_INCREMENTAL=0 RUSTFLAGS="-Zprofile -Ccodegen-units=1 -Copt-level=0 -Clink-dead-code -Coverflow-checks=off -Zpanic_abort_tests -Cpanic=abort" RUSTDOCFLAGS="-Cpanic=abort" cargo +nightly build
(...)
Compiling rusty-git-gui v0.1.0 (/home/user/dev/project/rusty-git-gui)
error: linking with `cc` failed: exit status: 1
|
= note: "cc" "-m64" "/home/user/dev/project/rusty-git-gui/target/debug/deps/rusty_git_gui-63776c07d46c5793.rusty_git_gui.765b2205-cgu.0.rcgu.o" "/home/user/dev/project/rusty-git-gui/target/debug/deps/rusty_git_gui-63776c07d46c5793.4yo7ecrqlvxzldmd.rcgu.o" "-Wl,--as-needed" "-L" "/home/user/dev/project/rusty-git-gui/target/debug/deps" "-L" "/usr/lib" "-L" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/home/user/dev/project/rusty-git-gui/target/debug/deps/librusty_git_gui-54f440ede6e1ae1b.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libsimilar-5fdb0e16d51b06bb.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libdirs-d8fa152de27c2e68.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libdirs_sys-c88c666d16b1113f.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libini-62d68995a96b9c8a.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libordered_multimap-3e93da4d4d0ed4b2.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libhashbrown-ddc2d61dd60ad672.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libahash-4dd6b377e912496d.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libdlv_list-1bbc0bf96b5813aa.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/librand-ed7a23eed001ae3f.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/librand_chacha-13220f02c8ab8334.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libppv_lite86-b183ff56153a063c.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/librand_core-63a38e140804399f.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libgetrandom-b3aa46ee9d93b325.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libgit2-2f2c4fc93c5309e1.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/liburl-d72cefb709e792ba.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libidna-089f7e113a79a2b9.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libunicode_normalization-2650e7e4eabb9945.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libtinyvec-51723c19b9b07abf.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libtinyvec_macros-ef06cf556416b731.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libunicode_bidi-2f96d8c1f35bb43a.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libform_urlencoded-1a48ab4b6760ee48.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libpercent_encoding-b196e1663297fef1.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libmatches-a104dd362fa85146.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/liblog-f784cbff22ad4f7e.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libcfg_if-90e3626e3c41eec3.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/liblibgit2_sys-94a023c5fc2a39d4.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/liblibz_sys-4d3a4b223c1ffc87.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libitertools-fac9230649873cd7.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libeither-8ed8bc54e89b5c30.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libgtk-bfbfe02d9cd3517f.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libfield_offset-bb806a303f20072d.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libmemoffset-dfb6fbd440eebe6e.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libgdk-6c76aaa6ea2bca0d.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libpango-5aec5ba2f40747e2.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libgdk_pixbuf-646795b0d061f7ed.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libgio-2d86e51437099924.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libfutures_io-418eae86e4808f51.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libcairo-d2da4bbe4c7c667d.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libthiserror-8739f214884377fd.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libatk-30e1ae800ed6c8e3.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libglib-5aea93bf7b64b47c.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libfutures_executor-5114a3cd78ec9438.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libfutures_util-39510fb8fd3e90ab.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libslab-fc15f3560c875dcc.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libpin_project_lite-c01d3460c002bb08.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libpin_utils-b7ff504f33cec58a.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libfutures_channel-5255ba5c9c642fc8.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libfutures_task-c4922df1e97c7487.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libfutures_core-4cd247a2341a0c43.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libsmallvec-dba68b901e1d2035.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libonce_cell-393bd80b9b1a6bb7.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libbitflags-05dfd5b5d1225bed.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libgtk_sys-f5ae32ac872e554b.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libgdk_sys-9ba650a1099243c7.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libpango_sys-77be2220b88a9b29.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libgdk_pixbuf_sys-157aa505be51a32e.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libgio_sys-62859cd5e83f6007.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libcairo_sys-12ae9da9ea2e2b3f.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libatk_sys-724348a6f993c6a2.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libgobject_sys-fcc9c08cc43656ae.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libglib_sys-18d94add778f6f75.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/liblibc-3c5eb47aba7639f7.rlib" "/home/user/dev/project/rusty-git-gui/target/debug/deps/libanyhow-22a1f0cffb3d44d8.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libprofiler_builtins-3db8bb50be1aec25.rlib" "-Wl,--start-group" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-d31eae41cd792517.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_abort-8118cd40266e20e4.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-1a282f8b292d9e3f.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-a54ae5159230894d.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-df56b38eda5fdb84.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-7509adad918d4b3b.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-66d0be1f7efaf5ca.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-41443b46a1557b2c.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-60812e99072283ff.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-412d545269c27063.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-0dbc7e011696d844.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-78b2343cc72ff57a.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-65fa19680bfb5ee4.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-72cab8079f9b3b1e.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-32d13a5363efe47b.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-9ee1d5d15e6abbeb.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-52d5241975807511.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-9924c22ae1efcf66.rlib" "-Wl,--end-group" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-96219fb718f2f3e8.rlib" "-Wl,-Bdynamic" "-lgit2" "-lz" "-lgobject-2.0" "-lgtk-3" "-lgdk-3" "-lz" "-lpangocairo-1.0" "-lpango-1.0" "-lharfbuzz" "-latk-1.0" "-lcairo-gobject" "-lcairo" "-lgdk_pixbuf-2.0" "-lgio-2.0" "-lgobject-2.0" "-lglib-2.0" "-lgdk-3" "-lz" "-lpangocairo-1.0" "-lpango-1.0" "-lharfbuzz" "-lgdk_pixbuf-2.0" "-lcairo-gobject" "-lcairo" "-lgobject-2.0" "-lglib-2.0" "-lpango-1.0" "-lgobject-2.0" "-lglib-2.0" "-lharfbuzz" "-lgdk_pixbuf-2.0" "-lgobject-2.0" "-lglib-2.0" "-lgio-2.0" "-lgobject-2.0" "-lglib-2.0" "-lcairo-gobject" "-lgobject-2.0" "-lglib-2.0" "-lcairo" "-latk-1.0" "-lgobject-2.0" "-lglib-2.0" "-lgobject-2.0" "-lglib-2.0" "-lgobject-2.0" "-lglib-2.0" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-L" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/home/user/dev/project/rusty-git-gui/target/debug/deps/rusty_git_gui-63776c07d46c5793" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-nodefaultlibs"
= note: /usr/bin/ld: /home/user/dev/project/rusty-git-gui/target/debug/deps/libgit2-2f2c4fc93c5309e1.rlib(git2-2f2c4fc93c5309e1.git2.d056b200-cgu.0.rcgu.o): in function `git2::branch::Branch::name_is_valid':
/home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/git2-0.13.21/src/branch.rs:36: undefined reference to `git_branch_name_is_valid'
collect2: error: ld returned 1 exit status
= help: some `extern` functions couldn't be found; some native libraries may need to be installed or have their path specified
= note: use the `-l` flag to specify native libraries to link
= note: use the `cargo:rustc-link-lib` directive to specify the native libraries to link with Cargo (see https://doc.rust-lang.org/cargo/reference/build-scripts.html#cargorustc-link-libkindname)
I guess git2 crate tries to link to libgit2 and fails. I already have installed libgit2, but I also know git2 comes with its own version of it.
@ArekPiekarz
@orhun Unfortunately I already had libxkbcommon installed when I tried to run
cargo tarpaulin
.
My point was: in my case "something" was missing and cargo-tarpaulin
was failing due to that. I used grcov
and it revealed the error. Your issue looks the same.
@ArekPiekarz
@orhun Unfortunately I already had libxkbcommon installed when I tried to run
cargo tarpaulin
.My point was: in my case "something" was missing and
cargo-tarpaulin
was failing due to that. I usedgrcov
and it revealed the error. Your issue looks the same.
Hmm, interesting. This might be my problem too, but have to test. I got the problem after adding more tests, but might have enabled a feature or something that needed an other lib. This might also explain why it works in my PC but not in CI pipeline.
Thanks for sharing! Will have a look and see if that fixes it.
Okay took me quite a few hours fixing and testing everything, but I fixed it. Let me explain thing for other people that have similar issues. For initial problems I had see: https://github.com/xd009642/tarpaulin/issues/517#issuecomment-874089885 But I'll summarize below as well.
After checking the issue out again I stumbled on this problem again:
It works locally but not on CI. Also tried running docker container locally but could not reproduce it. Although CI consistently fails. I first hit (I think) and infinite loop because my build hit the limit of 60min (usually take about 16min to run CI). But did not get any errors from this.
Note that before testing I upgraded to cargo-tarpaulin v0.18.2
My CI got stuck while compiling/linking (at end of compiling) but returned no errors. Locally it seemed to work just fine.
After testing I found out that the CI docker container was running out of RAM. This is the reason the compiler (mainly the linker) got stuck. Because when compiling a lot of test modules in parallel it starts multiple linking jobs. Each linking job was using about 2 GB or memory (don't know why, but it did, this was with GNU ld
). So 2 GB*8 = 16GB, this was to much for the CI. I switched to the lld
(LLVM linker) to see if this fixed the issue, it did change some thing and I fixed some issues with this in the past.
To switch to lld
I used: .cargo/config.toml
:
[target.x86_64-unknown-linux-gnu]
rustflags = [
"-C", "link-arg=-fuse-ld=lld",
]
Add this file to the root of your project. So:
my_project
├─ target/..
├─ src or workspace folders
├─ Cargo.toml
└─ .cargo
└─ cargo.toml
This might solve or create new problems. But could be a way out if you are stuck.
Switching back to ld
linker did solve the Broken pipe (os error 32)
with cc
in this case (I know this did not solve issue in the past, but it did now).
I also started the coverage test in a machine with more RAM and after some other fixes I got it working again. :tada:
There are definitely multiple sources for this issue then. I forgot to post this last week somehow, but it seems like tarpaulin has some issues running in workspaces, which I was able to reproduce (although I don't have the code on the computer I'm using right now).
Summary for solving this (and maybe other) issues: These fixes can be used independently. (are in rough order of how best to check)
- Clear caches / do a clean build
cargo clean
https://github.com/xd009642/tarpaulin/issues/517#issuecomment-681194362 - Update Tarpaulin, make sure you are running the latest version (there might be an alpha out depending on when you read this)
cargo install cargo-tarpaulin
to auto update orcargo install cargo-tarpaulin --version 0.18.0-alpha3
to force a particular version. - Make sure you have enough RAM (especially if you are running in CI) https://github.com/xd009642/tarpaulin/issues/517#issuecomment-923429731
- Switch to
stable
ornightly
toolchain when possiblecargo +nightly tarpaulin
- Run with
--verbose
flag set ( fixed in #787) - Try running less jobs concurrently, use
--jobs 2
flag (pick a number less then amount of CPU cores/virtual threads the machine has) - Make sure you are not missing libraries https://github.com/xd009642/tarpaulin/issues/517#issuecomment-912070823
- Switch linker
ld
(GNU, default) orlld
(LLVM, see this ) - Give
grcov
a try, this might surface errors that might fix Tarpaulin too. (see below for more info) - ... (there might be more ways to solve this)
grcov test
If all else fails you might be able to find out the problem by trying an other coverage tool.
When running grcov
it might detect things that will solve problems for Tarpaulin too.
Here are some of the settings I used in order to test things.
export CARGO_INCREMENTAL=0
export RUSTFLAGS="-Zinstrument-coverage -Zprofile -Ccodegen-units=1 -Copt-level=0 -Clink-dead-code -Coverflow-checks=off -Zpanic_abort_tests -Cpanic=abort"
export LLVM_PROFILE_FILE="myapp-%p-%m.profraw"
export RUSTDOCFLAGS="-Cpanic=abort"
export RUSTUP_TOOLCHAIN="nightly"
cargo clean
cargo +nightly build -vv --jobs 4
cargo +nightly test -vv --jobs 4
# or use `-t html` instead
grcov . -s . --binary-path ./target/debug/ -t lcov --branch --ignore-not-existing -o ./lcov.info
# Upload the `lcov.info` file for coverage data ( codecov for example )
./codecov.sh -f ./lcov.info -e CI=true
Little shout-out to @xd009642 his appearance in Rustacean Station Podcast episode 037. :smiley: Check it out if you want to know more about Tarpaulin and its future. Looking forward to LLVM update. :wink:
In my case, my lib referencing an external library, while cargo build
succeeds,
cargo tarpaulin
fails.
My lib.rs:
#[repr(C)]
pub struct PyObject {
pub ob_refcnt: i32,
}
extern "C" {
#[cfg_attr(PyPy, link_name = "_PyPy_NoneStruct")]
static mut _Py_NoneStruct: PyObject;
}
pub unsafe fn Py_None() -> *mut PyObject {
&mut _Py_NoneStruct
}
root@task20679-78cfbd5754-xlv8z:/home/test/abc# cargo tarpaulin --verbose
Sep 30 17:38:49.502 DEBUG cargo_tarpaulin: set up logging
Sep 30 17:38:49.502 INFO cargo_tarpaulin::config: Creating config
Sep 30 17:38:49.534 INFO cargo_tarpaulin: Running Tarpaulin
Sep 30 17:38:49.534 INFO cargo_tarpaulin: Building project
Sep 30 17:38:49.534 INFO cargo_tarpaulin::cargo: Cleaning project
Compiling abc v0.1.0 (/home/test/abc)
Running `rustc --crate-name abc --edition=2018 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 --test -C metadata=3a4832eb8b7395b3 -C extra-filename=-3a4832eb8b7395b3 --out-dir /home/test/abc/target/debug/deps -C incremental=/home/test/abc/target/debug/incremental -L dependency=/home/test/abc/target/debug/deps -C debuginfo=2 --cfg=tarpaulin -C link-dead-code`
error: Broken pipe (os error 32)
error: could not compile `abc`
Caused by:
process didn't exit successfully: `rustc --crate-name abc --edition=2018 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 --test -C metadata=3a4832eb8b7395b3 -C extra-filename=-3a4832eb8b7395b3 --out-dir /home/test/abc/target/debug/deps -C incremental=/home/test/abc/target/debug/incremental -L dependency=/home/test/abc/target/debug/deps -C debuginfo=2 --cfg=tarpaulin -C link-dead-code` (exit status: 1)
Sep 30 17:38:50.165 ERROR cargo_tarpaulin: Failed to compile tests! Error: abc: linking with `cc` failed: exit status: 1
Error: "Failed to compile tests! Error: abc: linking with `cc` failed: exit status: 1"
root@task20679-78cfbd5754-xlv8z:/home/test/abc#
Running command rustc --crate-name adc ...
reports error:
undefined reference to `_Py_NoneStruct'
Two years after the last reply, I have run into this issue as well. I have tried all steps of @ralpha 's excellent list:
Summary for solving this (and maybe other) issues: These fixes can be used independently. (are in rough order of how best to check)
Clear caches / do a clean build
cargo clean
Compile error: linking withcc
failed #517 (comment)Update Tarpaulin, make sure you are running the latest version (there might be an alpha out depending on when you read this)
cargo install cargo-tarpaulin
to auto update orcargo install cargo-tarpaulin --version 0.18.0-alpha3
to force a particular version.Make sure you have enough RAM (especially if you are running in CI) Compile error: linking with
cc
failed #517 (comment)Switch to
stable
ornightly
toolchain when possiblecargo +nightly tarpaulin
Run with
--verbose
flag set ( fixed in Verbose flag does not display more info #787)Try running less jobs concurrently, use
--jobs 2
flag (pick a number less then amount of CPU cores/virtual threads the machine has)Make sure you are not missing libraries Compile error: linking with
cc
failed #517 (comment)Switch linker
ld
(GNU, default) orlld
(LLVM, see this )Give
grcov
a try, this might surface errors that might fix Tarpaulin too. (see below for more info)... (there might be more ways to solve this)
grcov test
Little shout-out to @xd009642 his appearance in Rustacean Station Podcast episode 037. 😃 Check it out if you want to know more about Tarpaulin and its future. Looking forward to LLVM update. 😉
to no avail. My suspicion (from error messages) is a malfunction in combination with insta
(and serde
?). gcov
builds properly, from brief testing.
This one-liner reproduces the issue, and should be stable, as everything is pinned:
$ docker run --rm rust:1.73 sh -c 'git clone https://github.com/alexpovel/srgn.git && cd srgn && git switch --detach 0a81a5cb && cargo install --quiet cargo-tarpaulin --version 0.27.1 && cargo tarpaulin --engine llvm'
Cloning into 'srgn'...
HEAD is now at 0a81a5c chore: Drop unused build-dependency (`cc`)
Oct 25 19:52:31.900 INFO cargo_tarpaulin::config: Creating config
Oct 25 19:52:35.705 INFO cargo_tarpaulin: Running Tarpaulin
Oct 25 19:52:35.705 INFO cargo_tarpaulin: Building project
Oct 25 19:52:35.705 INFO cargo_tarpaulin::cargo: Cleaning project
Compiling proc-macro2 v1.0.66
[... redacted ...]
Compiling insta v1.31.0
Compiling syntect v5.1.0
Compiling comrak v0.18.0
warning: Dropped 1453249 compound words (699407 remaining); see '"/srgn/target/debug/build/srgn-e1c40b466b9b66e8/output"' for a list.
error: Broken pipe (os error 32)
warning: build failed, waiting for other jobs to finish...
The following warnings were emitted during compilation:
warning: Dropped 1453249 compound words (699407 remaining); see '"/srgn/target/debug/build/srgn-e1c40b466b9b66e8/output"' for a list.
error: could not compile `srgn` (test "cli") due to 2 previous errors
Oct 25 19:53:08.278 ERROR cargo_tarpaulin: Failed to compile tests!
error: linking with `cc` failed: exit status: 1
|
= note: LC_ALL="C" PATH="/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/usr/local/cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "cc" "-m64" "/tmp/rustcVxph4L/symbols.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.16m27e7bh2xcyb5u.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.183yy52te694vnwq.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.19hs6ox7kyuq12ur.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.1h9q1ucclvneruri.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.1kphgktnrlt4v1y2.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.1lk2ucp4scmuesxu.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.1wcxnr9pqjd21joe.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.1wktq9bqjhfq2cac.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.1xilzogceuqtrmb2.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.1xtmpx6q4tofsyjt.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.1yui0tzr33d7601t.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.235t9yvbdvg4s4vl.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.2lwqtomwee9foyk5.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.2mq3c488jeu8n0sw.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.2prplnlr80ws7kff.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.2u3ipo2m6qpgojs2.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.2vpxf9clyuf92ums.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.30vi04h3uvjjbqqo.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.331xdcetaoxvthrn.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.33e030uawkor6xvp.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.345e44and8n2hj5w.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.34kd9c1mfl5plu7c.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.3cg0uxviv8s8dhyc.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.3qs0t3bg5otcd40b.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.3uea1toqnu4wa9ew.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.41f6geqr3t0lw2fd.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.436yfuvaglklpqvn.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.44ljqhb6eomke5zw.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.4633cgxbvce1c3cl.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.47gh4kqofjfduvt7.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.483cs72kt042jdym.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.4ewtx46jmunq88lr.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.4hht4kq3we8ptkc8.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.4itq2x2zbpuwhj04.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.4o4zaba2slio0swz.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.4t2ujgwfvu01q91d.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.4v1uu09i3clg4qbd.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.4vf1cua32lmtcf2e.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.4xuio3lfb0yrs0xw.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.4y1hdxginvxs8mq3.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.4zz6xjs7ykbz8akx.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.50zxfrel65esa2fo.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.51ao8nfzi3vevqjw.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.59hpfigvq3q54rnx.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.5amxrkvqjnstosqw.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.5aw3l724pdw2ubzz.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.5dhzdw9naa9k856a.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.5dwrsjiaox0mg9ep.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.6zptena5bqcgt0p.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.7fv8kjypsbeap1d.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.90v1igzdjf5j2q9.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.gmu0dr0xk0gsded.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.rr05othe0mxs00y.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.rsmxwl293ek9fvi.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.uh7syurtfy34dax.rcgu.o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f.3nty7lkz07leccp7.rcgu.o" "-Wl,--as-needed" "-L" "/srgn/target/debug/deps" "-L" "/srgn/target/debug/build/onig_sys-d32cd40a9d5f7120/out" "-L" "/srgn/target/debug/build/tree-sitter-689fd5b0053c5699/out" "-L" "/srgn/target/debug/build/tree-sitter-c-sharp-bbc0c33eb00aa58e/out" "-L" "/srgn/target/debug/build/tree-sitter-python-39cdbd326043e2b2/out" "-L" "/srgn/target/debug/build/tree-sitter-typescript-654f352542b63dc8/out" "-L" "/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-1c1e90653c657ff2.rlib" "/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgetopts-e8683e75aaaef901.rlib" "/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-b71c2483f91f7b1d.rlib" "/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_std-0501fbcc95f3e2d1.rlib" "/srgn/target/debug/deps/libinsta-35c580ef569e966f.rlib" "/srgn/target/debug/deps/libconsole-9d37a170f74e7efc.rlib" "/srgn/target/debug/deps/liblazy_static-4b432e5b47262c38.rlib" "/srgn/target/debug/deps/libsimilar-40fdadc462baf3b5.rlib" "/srgn/target/debug/deps/libyaml_rust-61fa7b9fa081263d.rlib" "/srgn/target/debug/deps/liblinked_hash_map-ce12c0e16026e3f1.rlib" "/srgn/target/debug/deps/libserde-887fa839d4a84f64.rlib" "/srgn/target/debug/deps/librstest-ef6f7807f03c4392.rlib" "/srgn/target/debug/deps/libfutures_timer-b53c2aa6acf63db6.rlib" "/srgn/target/debug/deps/libfutures-287e487bfadb2928.rlib" "/srgn/target/debug/deps/libfutures_executor-a8acf1c64e8d74bd.rlib" "/srgn/target/debug/deps/libfutures_util-477491c23617131c.rlib" "/srgn/target/debug/deps/libfutures_io-2fc2387f3e56f6c6.rlib" "/srgn/target/debug/deps/libslab-d5dd19d7b786f731.rlib" "/srgn/target/debug/deps/libfutures_channel-68faed30229b75d6.rlib" "/srgn/target/debug/deps/libpin_project_lite-1f6d7e12936aa11d.rlib" "/srgn/target/debug/deps/libfutures_sink-a17bad876ac4e60c.rlib" "/srgn/target/debug/deps/libfutures_task-7abe831f6c5dbab9.rlib" "/srgn/target/debug/deps/libpin_utils-c2f8c3e8b8c28b8a.rlib" "/srgn/target/debug/deps/libfutures_core-b3db6942e830d8cf.rlib" "/srgn/target/debug/deps/libassert_cmd-dd18d76f771bcdcf.rlib" "/srgn/target/debug/deps/libwait_timeout-ae65d478b1006063.rlib" "/srgn/target/debug/deps/liblibc-65d9383e28d37e6d.rlib" "/srgn/target/debug/deps/libdoc_comment-5c178e82c70a0879.rlib" "/srgn/target/debug/deps/libbstr-5c4a2dc00e9ff54f.rlib" "/srgn/target/debug/deps/libregex_automata-880d554b567d355b.rlib" "/srgn/target/debug/deps/libaho_corasick-a9b451a21561cbf0.rlib" "/srgn/target/debug/deps/libregex_syntax-770ede73a1943144.rlib" "/srgn/target/debug/deps/libmemchr-3448210447d3a729.rlib" "/srgn/target/debug/deps/libpredicates_tree-67a4e4549cf1e260.rlib" "/srgn/target/debug/deps/libtermtree-5dad86c55c84bdf0.rlib" "/srgn/target/debug/deps/libpredicates-2382613f3b8f1235.rlib" "/srgn/target/debug/deps/libanstyle-8c6c897b75719b74.rlib" "/srgn/target/debug/deps/libitertools-5665b800ce12bef1.rlib" "/srgn/target/debug/deps/libeither-fc950dc8e74707c2.rlib" "/srgn/target/debug/deps/libdifflib-99c5ee9218d52c24.rlib" "/srgn/target/debug/deps/libpredicates_core-83722797e30e1732.rlib" "/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libprofiler_builtins-49e93eafca2ef9ce.rlib" "/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-6498d8891e016dca.rlib" "/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-3debdee1a9058d84.rlib" "/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-8339c5bd5cbc92bf.rlib" "/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-160ebcebb54c11ba.rlib" "/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-95c75789f1b65e37.rlib" "/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-7e8094f2d6258832.rlib" "/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-bac9783ef1b45db0.rlib" "/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-a1cd87df2f2d8e76.rlib" "/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-7fd06d468d7dba16.rlib" "/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-5ac19487656e05bf.rlib" "/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-c7c35d32cf825c11.rlib" "/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-c523f1571362e70b.rlib" "/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-85f17c92b770a911.rlib" "/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-598d3ba148dadcea.rlib" "/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-a58ec2dab545caa4.rlib" "/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-f9dda8cca149f0fc.rlib" "/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-7ba4c315dd7a3503.rlib" "/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-5ac2993e19124966.rlib" "/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-df2fb7f50dec519a.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/srgn/target/debug/deps/cli-f0c65dd27d592e9f" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs" "-u" "__llvm_profile_runtime"
= note: /usr/bin/ld: /srgn/target/debug/deps/cli-f0c65dd27d592e9f: hidden symbol `_RNvMs2_NtNtCs1jn5UyBd0Wk_5insta7content13serializationINtB5_17ContentSerializerNtNtNtCslehDsC0FzeN_5serde2de5value5ErrorE3newCsdw2h9nC0rBj_3cli' isn't defined
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
Error: "Failed to compile tests!\nerror: linking with `cc` failed: exit status: 1\n |\n = note: LC_ALL=\"C\" PATH=\"/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/usr/local/cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\" VSLANG=\"1033\" \"cc\" \"-m64\" \"/tmp/rustcVxph4L/symbols.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.16m27e7bh2xcyb5u.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.183yy52te694vnwq.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.19hs6ox7kyuq12ur.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.1h9q1ucclvneruri.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.1kphgktnrlt4v1y2.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.1lk2ucp4scmuesxu.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.1wcxnr9pqjd21joe.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.1wktq9bqjhfq2cac.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.1xilzogceuqtrmb2.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.1xtmpx6q4tofsyjt.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.1yui0tzr33d7601t.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.235t9yvbdvg4s4vl.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.2lwqtomwee9foyk5.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.2mq3c488jeu8n0sw.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.2prplnlr80ws7kff.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.2u3ipo2m6qpgojs2.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.2vpxf9clyuf92ums.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.30vi04h3uvjjbqqo.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.331xdcetaoxvthrn.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.33e030uawkor6xvp.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.345e44and8n2hj5w.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.34kd9c1mfl5plu7c.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.3cg0uxviv8s8dhyc.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.3qs0t3bg5otcd40b.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.3uea1toqnu4wa9ew.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.41f6geqr3t0lw2fd.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.436yfuvaglklpqvn.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.44ljqhb6eomke5zw.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.4633cgxbvce1c3cl.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.47gh4kqofjfduvt7.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.483cs72kt042jdym.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.4ewtx46jmunq88lr.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.4hht4kq3we8ptkc8.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.4itq2x2zbpuwhj04.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.4o4zaba2slio0swz.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.4t2ujgwfvu01q91d.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.4v1uu09i3clg4qbd.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.4vf1cua32lmtcf2e.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.4xuio3lfb0yrs0xw.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.4y1hdxginvxs8mq3.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.4zz6xjs7ykbz8akx.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.50zxfrel65esa2fo.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.51ao8nfzi3vevqjw.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.59hpfigvq3q54rnx.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.5amxrkvqjnstosqw.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.5aw3l724pdw2ubzz.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.5dhzdw9naa9k856a.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.5dwrsjiaox0mg9ep.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.6zptena5bqcgt0p.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.7fv8kjypsbeap1d.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.90v1igzdjf5j2q9.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.gmu0dr0xk0gsded.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.rr05othe0mxs00y.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.rsmxwl293ek9fvi.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.uh7syurtfy34dax.rcgu.o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f.3nty7lkz07leccp7.rcgu.o\" \"-Wl,--as-needed\" \"-L\" \"/srgn/target/debug/deps\" \"-L\" \"/srgn/target/debug/build/onig_sys-d32cd40a9d5f7120/out\" \"-L\" \"/srgn/target/debug/build/tree-sitter-689fd5b0053c5699/out\" \"-L\" \"/srgn/target/debug/build/tree-sitter-c-sharp-bbc0c33eb00aa58e/out\" \"-L\" \"/srgn/target/debug/build/tree-sitter-python-39cdbd326043e2b2/out\" \"-L\" \"/srgn/target/debug/build/tree-sitter-typescript-654f352542b63dc8/out\" \"-L\" \"/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib\" \"-Wl,-Bstatic\" \"/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-1c1e90653c657ff2.rlib\" \"/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgetopts-e8683e75aaaef901.rlib\" \"/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-b71c2483f91f7b1d.rlib\" \"/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_std-0501fbcc95f3e2d1.rlib\" \"/srgn/target/debug/deps/libinsta-35c580ef569e966f.rlib\" \"/srgn/target/debug/deps/libconsole-9d37a170f74e7efc.rlib\" \"/srgn/target/debug/deps/liblazy_static-4b432e5b47262c38.rlib\" \"/srgn/target/debug/deps/libsimilar-40fdadc462baf3b5.rlib\" \"/srgn/target/debug/deps/libyaml_rust-61fa7b9fa081263d.rlib\" \"/srgn/target/debug/deps/liblinked_hash_map-ce12c0e16026e3f1.rlib\" \"/srgn/target/debug/deps/libserde-887fa839d4a84f64.rlib\" \"/srgn/target/debug/deps/librstest-ef6f7807f03c4392.rlib\" \"/srgn/target/debug/deps/libfutures_timer-b53c2aa6acf63db6.rlib\" \"/srgn/target/debug/deps/libfutures-287e487bfadb2928.rlib\" \"/srgn/target/debug/deps/libfutures_executor-a8acf1c64e8d74bd.rlib\" \"/srgn/target/debug/deps/libfutures_util-477491c23617131c.rlib\" \"/srgn/target/debug/deps/libfutures_io-2fc2387f3e56f6c6.rlib\" \"/srgn/target/debug/deps/libslab-d5dd19d7b786f731.rlib\" \"/srgn/target/debug/deps/libfutures_channel-68faed30229b75d6.rlib\" \"/srgn/target/debug/deps/libpin_project_lite-1f6d7e12936aa11d.rlib\" \"/srgn/target/debug/deps/libfutures_sink-a17bad876ac4e60c.rlib\" \"/srgn/target/debug/deps/libfutures_task-7abe831f6c5dbab9.rlib\" \"/srgn/target/debug/deps/libpin_utils-c2f8c3e8b8c28b8a.rlib\" \"/srgn/target/debug/deps/libfutures_core-b3db6942e830d8cf.rlib\" \"/srgn/target/debug/deps/libassert_cmd-dd18d76f771bcdcf.rlib\" \"/srgn/target/debug/deps/libwait_timeout-ae65d478b1006063.rlib\" \"/srgn/target/debug/deps/liblibc-65d9383e28d37e6d.rlib\" \"/srgn/target/debug/deps/libdoc_comment-5c178e82c70a0879.rlib\" \"/srgn/target/debug/deps/libbstr-5c4a2dc00e9ff54f.rlib\" \"/srgn/target/debug/deps/libregex_automata-880d554b567d355b.rlib\" \"/srgn/target/debug/deps/libaho_corasick-a9b451a21561cbf0.rlib\" \"/srgn/target/debug/deps/libregex_syntax-770ede73a1943144.rlib\" \"/srgn/target/debug/deps/libmemchr-3448210447d3a729.rlib\" \"/srgn/target/debug/deps/libpredicates_tree-67a4e4549cf1e260.rlib\" \"/srgn/target/debug/deps/libtermtree-5dad86c55c84bdf0.rlib\" \"/srgn/target/debug/deps/libpredicates-2382613f3b8f1235.rlib\" \"/srgn/target/debug/deps/libanstyle-8c6c897b75719b74.rlib\" \"/srgn/target/debug/deps/libitertools-5665b800ce12bef1.rlib\" \"/srgn/target/debug/deps/libeither-fc950dc8e74707c2.rlib\" \"/srgn/target/debug/deps/libdifflib-99c5ee9218d52c24.rlib\" \"/srgn/target/debug/deps/libpredicates_core-83722797e30e1732.rlib\" \"/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libprofiler_builtins-49e93eafca2ef9ce.rlib\" \"/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-6498d8891e016dca.rlib\" \"/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-3debdee1a9058d84.rlib\" \"/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-8339c5bd5cbc92bf.rlib\" \"/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-160ebcebb54c11ba.rlib\" \"/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-95c75789f1b65e37.rlib\" \"/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-7e8094f2d6258832.rlib\" \"/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-bac9783ef1b45db0.rlib\" \"/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-a1cd87df2f2d8e76.rlib\" \"/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-7fd06d468d7dba16.rlib\" \"/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-5ac19487656e05bf.rlib\" \"/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-c7c35d32cf825c11.rlib\" \"/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-c523f1571362e70b.rlib\" \"/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-85f17c92b770a911.rlib\" \"/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-598d3ba148dadcea.rlib\" \"/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-a58ec2dab545caa4.rlib\" \"/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-f9dda8cca149f0fc.rlib\" \"/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-7ba4c315dd7a3503.rlib\" \"/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-5ac2993e19124966.rlib\" \"/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-df2fb7f50dec519a.rlib\" \"-Wl,-Bdynamic\" \"-lgcc_s\" \"-lutil\" \"-lrt\" \"-lpthread\" \"-lm\" \"-ldl\" \"-lc\" \"-Wl,--eh-frame-hdr\" \"-Wl,-z,noexecstack\" \"-L\" \"/usr/local/rustup/toolchains/1.73.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib\" \"-o\" \"/srgn/target/debug/deps/cli-f0c65dd27d592e9f\" \"-pie\" \"-Wl,-z,relro,-z,now\" \"-nodefaultlibs\" \"-u\" \"__llvm_profile_runtime\"\n = note: /usr/bin/ld: /srgn/target/debug/deps/cli-f0c65dd27d592e9f: hidden symbol `_RNvMs2_NtNtCs1jn5UyBd0Wk_5insta7content13serializationINtB5_17ContentSerializerNtNtNtCslehDsC0FzeN_5serde2de5value5ErrorE3newCsdw2h9nC0rBj_3cli' isn't defined\n /usr/bin/ld: final link failed: bad value\n collect2: error: ld returned 1 exit status\n \n\n"
where the last bit of the error reads (cleaned):
`_RNvMs2_NtNtCs1jn5UyBd0Wk_5insta7content13serializationINtB5_17ContentSerializerNtNtNtCslehDsC0FzeN_5serde2de5value5ErrorE3newCsdw2h9nC0rBj_3cli' isn't defined
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status"
Note, if testing such that features using insta
are disabled, it works:
$ docker run --rm rust:1.73 sh -c 'git clone https://github.com/alexpovel/srgn.git && cd srgn && git switch --detach 0a81a5cb && cargo install --quiet cargo-tarpaulin --version 0.27.1 && cargo tarpaulin --no-default-features --engine llvm'
[...]
Oct 25 19:56:16.513 INFO cargo_tarpaulin::statemachine::instrumented: For binary: target/debug/deps/srgn-19f512921dfca11f
Oct 25 19:56:16.513 INFO cargo_tarpaulin::statemachine::instrumented: Generated: target/tarpaulin/profraws/srgn-19f512921dfca11f_10852938971638991515_0-6698.profraw
Oct 25 19:56:16.513 INFO cargo_tarpaulin::statemachine::instrumented: Merging coverage reports
Oct 25 19:56:16.555 INFO cargo_tarpaulin::statemachine::instrumented: Mapping coverage data to source
Oct 25 19:56:18.168 INFO cargo_tarpaulin::report: Coverage Results:
|| Uncovered Lines:
|| build.rs: 63-64, 66, 68, 70, 72, 76-80, 82, 86-88, 97-99, 105, 107-108, 110, 113, 117, 120, 122-123, 125-126, 129
|| src/actions/german/words.rs: 200, 204-206, 211-212
|| src/actions/mod.rs: 41-42, 49-50
|| src/actions/normalization/mod.rs: 12-13
|| src/actions/replace/mod.rs: 54, 62-65, 67-68, 82-85, 94-96
|| src/actions/symbols/mod.rs: 209-213
|| src/main.rs: 38-39, 41-43, 47, 49-51, 53-55, 57-59, 61, 64-66, 68-70, 72-73, 75-82, 84, 86, 89-94, 96, 101-103, 107-109, 112-118, 124-125, 128, 141-144, 146, 148-151, 153-154, 156-157, 160-161, 164-167, 170-171, 174, 176, 178-180, 182, 184, 195-198, 201-202, 217-218, 223-224, 229-233, 240-241, 243-245, 247-249, 251, 255-257, 259-261, 263, 267-269, 271-273, 275, 279-281, 284-285, 289, 292-293, 295-297, 299, 323-325, 328-330, 333-335, 338-340, 343-345, 348, 350, 353, 646-647
|| src/scoping/dosfix.rs: 39, 46
|| src/scoping/langs/csharp.rs: 22, 24-26, 40-43, 49-50, 56-57, 62-63, 66-67
|| src/scoping/langs/mod.rs: 55, 99
|| src/scoping/langs/python.rs: 73-76, 82-83
|| src/scoping/langs/typescript.rs: 20, 22-24, 38-41, 47-48, 54-55, 60-61, 64-65
|| src/scoping/literal.rs: 18-21
|| src/scoping/mod.rs: 32-33, 41-42, 48-49
|| src/scoping/regex.rs: 31-32, 41-42, 44, 49-50, 61, 74-76, 83-85, 108
|| src/scoping/view.rs: 36-37, 52-53, 85-88, 106-107, 109, 121-122, 124, 130-131, 133, 138-139, 141, 146-147, 149, 153-154, 156, 284-285
|| Tested/Total Lines:
|| build.rs: 0/30
|| src/actions/deletion/mod.rs: 3/3
|| src/actions/german/words.rs: 0/6
|| src/actions/lower/mod.rs: 3/3
|| src/actions/mod.rs: 0/4
|| src/actions/normalization/mod.rs: 0/2
|| src/actions/replace/mod.rs: 0/14
|| src/actions/symbols/mod.rs: 0/5
|| src/actions/titlecase/mod.rs: 2/2
|| src/actions/upper/mod.rs: 2/2
|| src/main.rs: 11/166
|| src/scoping/dosfix.rs: 6/8
|| src/scoping/langs/csharp.rs: 0/16
|| src/scoping/langs/mod.rs: 25/27
|| src/scoping/langs/python.rs: 23/29
|| src/scoping/langs/typescript.rs: 0/16
|| src/scoping/literal.rs: 15/19
|| src/scoping/mod.rs: 0/6
|| src/scoping/regex.rs: 35/50
|| src/scoping/scope.rs: 35/35
|| src/scoping/view.rs: 66/94
||
42.09% coverage, 226/537 lines covered
The only place where insta
is used is here, which isn't built using the above command, as that code is behind #[cfg(feature = "all")]
(which is false in the previous).
So I solved it like this:
commit 6ace4fa476cad447060d76043c731c811b64629f
Author: Alex Povel <[email protected]>
Date: Wed Oct 25 22:39:35 2023 +0200
fix(ci): Code coverage using `tarpaulin`, by conditionally disabling `insta`
Hacks
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index df377ca..9c2bf05 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -60,9 +60,6 @@ jobs:
runs-on: ubuntu-latest
- # Currently broken... linking with `cc`/`ld` fails, no idea...
- if: false
-
steps:
- uses: actions/checkout@v4
@@ -77,13 +74,17 @@ jobs:
run: rustup toolchain install --profile minimal nightly
- name: Run tests (with coverage)
- # `--all-targets` does not include `--doc`
+ # `--all-targets` does not include `--doc`. For why the `features` stuff is
+ # needed, see `tarpaulin-incompatible` feature and
+ # https://github.com/xd009642/tarpaulin/issues/517#issuecomment-1779964669.
run: >
cargo tarpaulin
--out xml
--engine llvm
--all-targets
--doc
+ --no-default-features
+ --features all
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v3
diff --git a/Cargo.toml b/Cargo.toml
index 05e8f38..bb5d9c4 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -42,10 +42,15 @@ glob = "0.3.1"
[features]
german = ["cached", "decompound", "fst", "once_cell"]
-default = ["all"]
+default = ["all", "tarpaulin-incompatible"]
all = ["german", "symbols"]
symbols = []
+# Used to mark and exclude incompatible code from compilation when running tarpaulin.
+# Very ugly. Solves linking issues when `insta` is used:
+# https://github.com/xd009642/tarpaulin/issues/517#issuecomment-1779964669
+tarpaulin-incompatible = []
+
[dev-dependencies]
assert_cmd = "2.0.12"
enum-iterator = "1.4.1"
diff --git a/tests/cli.rs b/tests/cli.rs
index a84f1a4..b824d8b 100644
--- a/tests/cli.rs
+++ b/tests/cli.rs
@@ -80,6 +80,8 @@ Duebel
let snapshot_name =
(padded_sample_number.clone() + "+" + &args.join("_")).replace(' ', "_");
+
+ #[cfg(feature = "tarpaulin-incompatible")] // Doesn't influence covered code
insta::assert_yaml_snapshot!(
snapshot_name,
CommandResult {
Quite ugly, but works. The final insta
call only checks the test results for correctness, but the code has already been covered by that point. Correctness is checked in regular testing.