xd009642 / tarpaulin

A code coverage tool for Rust projects
https://crates.io/crates/cargo-tarpaulin
Apache License 2.0
2.5k stars 180 forks source link

Compile error: linking with `cc` failed #517

Open wcampbell0x2a opened 4 years ago

wcampbell0x2a commented 4 years ago

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"
xd009642 commented 4 years ago

Do you have an example project I could try this out on locally?

xd009642 commented 4 years ago

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

ralpha commented 4 years ago

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!

xd009642 commented 3 years ago

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:

sdttttt commented 3 years ago

@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

sdttttt commented 3 years ago

It suddenly works again today. I don't know what happened to....🐶

xd009642 commented 3 years ago

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

ralpha commented 3 years ago

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)

zjb0807 commented 3 years ago

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
Noah-Kennedy commented 3 years ago

Having the same issue with this.

ArekPiekarz commented 3 years ago

I also stumbled upon this problem trying to generate code coverage for https://github.com/ArekPiekarz/rusty-git-gui, using command cargo tarpaulin.

orhun commented 3 years ago

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.

ArekPiekarz commented 3 years ago

@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.

ArekPiekarz commented 3 years ago

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.

orhun commented 3 years ago

@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.

ralpha commented 3 years ago

@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.

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.

ralpha commented 3 years ago

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:

Noah-Kennedy commented 3 years ago

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).

ralpha commented 3 years ago

Summary for solving this (and maybe other) issues: These fixes can be used independently. (are in rough order of how best to check)

  1. Clear caches / do a clean build cargo clean https://github.com/xd009642/tarpaulin/issues/517#issuecomment-681194362
  2. 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 or cargo install cargo-tarpaulin --version 0.18.0-alpha3 to force a particular version.
  3. Make sure you have enough RAM (especially if you are running in CI) https://github.com/xd009642/tarpaulin/issues/517#issuecomment-923429731
  4. Switch to stable or nightly toolchain when possible cargo +nightly tarpaulin
  5. Run with --verbose flag set ( fixed in #787)
  6. Try running less jobs concurrently, use --jobs 2 flag (pick a number less then amount of CPU cores/virtual threads the machine has)
  7. Make sure you are not missing libraries https://github.com/xd009642/tarpaulin/issues/517#issuecomment-912070823
  8. Switch linker ld (GNU, default) or lld (LLVM, see this )
  9. Give grcov a try, this might surface errors that might fix Tarpaulin too. (see below for more info)
  10. ... (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](https://github.com/xd009642/tarpaulin/issues/517#issuecomment-912070823). Here are some of the settings I used in order to test things. ```bash 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:

jinq0123 commented 3 years ago

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'
alexpovel commented 11 months ago

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)

  1. Clear caches / do a clean build cargo clean Compile error: linking with cc failed #517 (comment)

  2. 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 or cargo install cargo-tarpaulin --version 0.18.0-alpha3 to force a particular version.

  3. Make sure you have enough RAM (especially if you are running in CI) Compile error: linking with cc failed #517 (comment)

  4. Switch to stable or nightly toolchain when possible cargo +nightly tarpaulin

  5. Run with --verbose flag set ( fixed in Verbose flag does not display more info #787)

  6. Try running less jobs concurrently, use --jobs 2 flag (pick a number less then amount of CPU cores/virtual threads the machine has)

  7. Make sure you are not missing libraries Compile error: linking with cc failed #517 (comment)

  8. Switch linker ld (GNU, default) or lld (LLVM, see this )

  9. Give grcov a try, this might surface errors that might fix Tarpaulin too. (see below for more info)

  10. ... (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 <git@alexpovel.de>
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.