-
-
Notifications
You must be signed in to change notification settings - Fork 188
Closed
Description
Describe the bug
When using Tarpaulin 0.18.0-alpha1 installed from a clone of this project:
wink@3900x:~/prgs/rust/clone/tarpaulin (develop)
$ git log -1 --pretty=oneline
2eb72209c908b5fe3be55cfeb2da4d723f103d2f (HEAD -> develop, origin/develop, origin/HEAD) Bump syn from 1.0.68 to 1.0.69 (#735)
wink@3900x:~/prgs/rust/projects/binance-auto-sell (tarpaulin-requires-cargo-clean)
$ cargo tarpaulin --version
cargo-tarpaulin version: 0.18.0-alpha1
I get the following error when I compile winksaville/binance-auto-sell:
warning: build failed, waiting for other jobs to finish...
thread 'main' panicked at 'already borrowed: BorrowMutError', src/tools/cargo/src/cargo/util/config/mod.rs:307:20
If instead I use the release version, 0.16.0:
wink@3900x:~/prgs/rust/projects/binance-auto-sell (tarpaulin-requires-cargo-clean)
$ cargo tarpaulin --version
cargo-tarpaulin version: 0.16.0
It completes successfully:
Apr 14 12:02:48.687 INFO cargo_tarpaulin: Launching test
Apr 14 12:02:48.687 INFO cargo_tarpaulin: running /home/wink/prgs/rust/projects/binance-auto-sell/target/debug/deps/binance_auto_sell-8b2f8d3614c3ece0
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Apr 14 12:02:49.267 INFO cargo_tarpaulin: Launching test
Apr 14 12:02:49.267 INFO cargo_tarpaulin: running /home/wink/prgs/rust/projects/binance-auto-sell/target/debug/deps/cli-595a799ae4fee77f
running 4 tests
test test_req_params_as_env_vars ... ok
test test_req_params ... ok
test test_no_params ... ok
test test_help ... ok
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
Apr 14 12:02:50.331 INFO cargo_tarpaulin::report: Coverage Results:
|| Uncovered Lines:
|| src/main.rs: 16-17, 20-22, 24
|| Tested/Total Lines:
|| src/main.rs: 0/6
||
0.00% coverage, 0/6 lines covered
But note: the 0.00% coverage! Hence the reason to use 0.18.0 as it supports
--follow-exec
To Reproduce
Here is the command line and full output. Notice that this happens after a cargo build
:
wink@3900x:~/prgs/rust/projects/binance-auto-sell (tarpaulin-requires-cargo-clean)
$ cargo clean && cargo build && RUST_BACKTRACE=1 cargo tarpaulin --verbose
Compiling proc-macro2 v1.0.26
Compiling version_check v0.9.3
Compiling unicode-xid v0.2.1
Compiling syn v1.0.69
Compiling autocfg v1.0.1
Compiling libc v0.2.93
Compiling unicode-segmentation v1.7.1
Compiling bitflags v1.2.1
Compiling unicode-width v0.1.8
Compiling hashbrown v0.9.1
Compiling strsim v0.10.0
Compiling termcolor v1.1.2
Compiling os_str_bytes v2.4.0
Compiling lazy_static v1.4.0
Compiling vec_map v0.8.2
Compiling textwrap v0.12.1
Compiling proc-macro-error-attr v1.0.4
Compiling proc-macro-error v1.0.4
Compiling indexmap v1.6.2
Compiling heck v0.3.2
Compiling quote v1.0.9
Compiling atty v0.2.14
Compiling clap_derive v3.0.0-beta.2
Compiling clap v3.0.0-beta.2
Compiling binance-auto-sell v0.1.0 (/home/wink/prgs/rust/projects/binance-auto-sell)
Finished dev [unoptimized + debuginfo] target(s) in 7.49s
Apr 14 11:56:52.713 DEBUG cargo_tarpaulin: set up logging
Apr 14 11:56:52.733 INFO cargo_tarpaulin: Running Tarpaulin
Apr 14 11:56:52.733 INFO cargo_tarpaulin: Building project
Compiling autocfg v1.0.1
Compiling version_check v0.9.3
Compiling proc-macro2 v1.0.26
Compiling unicode-xid v0.2.1
Compiling memchr v2.3.4
Compiling libc v0.2.93
Compiling syn v1.0.69
Compiling bitflags v1.2.1
Compiling lazy_static v1.4.0
Compiling unicode-segmentation v1.7.1
Compiling doc-comment v0.3.3
Compiling predicates-core v1.0.2
Compiling hashbrown v0.9.1
Compiling regex-syntax v0.6.23
Compiling unicode-width v0.1.8
Compiling byteorder v1.4.3
Compiling vec_map v0.8.2
Compiling normalize-line-endings v0.3.0
Compiling treeline v0.1.0
Compiling strsim v0.10.0
Compiling termcolor v1.1.2
Compiling os_str_bytes v2.4.0
Compiling difference v2.0.0
Compiling textwrap v0.12.1
Compiling predicates-tree v1.0.2
Compiling regex-automata v0.1.9
Compiling proc-macro-error-attr v1.0.4
Compiling proc-macro-error v1.0.4
Compiling num-traits v0.2.14
Compiling indexmap v1.6.2
Compiling heck v0.3.2
Compiling aho-corasick v0.7.15
Compiling bstr v0.2.15
Compiling quote v1.0.9
Compiling atty v0.2.14
Compiling wait-timeout v0.2.0
Compiling float-cmp v0.8.0
Compiling regex v1.4.5
Compiling predicates v1.0.7
Compiling assert_cmd v1.0.3
Compiling clap_derive v3.0.0-beta.2
Compiling clap v3.0.0-beta.2
Compiling binance-auto-sell v0.1.0 (/home/wink/prgs/rust/projects/binance-auto-sell)
error: could not compile `binance-auto-sell`
To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
thread 'main' panicked at 'already borrowed: BorrowMutError', src/tools/cargo/src/cargo/util/config/mod.rs:307:20
stack backtrace:
0: rust_begin_unwind
at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/std/src/panicking.rs:493:5
1: core::panicking::panic_fmt
at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/core/src/panicking.rs:92:14
2: core::option::expect_none_failed
at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/core/src/option.rs:1300:5
3: cargo::core::compiler::job_queue::DrainState::drain_the_queue
4: std::panic::catch_unwind
5: crossbeam_utils::thread::scope
6: cargo::core::compiler::job_queue::JobQueue::execute
7: cargo::core::compiler::context::Context::compile
8: cargo::ops::cargo_compile::compile_ws
9: cargo::ops::cargo_compile::compile
10: cargo::ops::cargo_test::run_tests
11: cargo::commands::test::exec
12: cargo::cli::main
13: cargo::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
Apr 14 11:57:01.006 ERROR cargo_tarpaulin: Failed to compile tests! Error: binance-auto-sell: linking with `cc` failed: exit code: 1
Error: "Failed to compile tests! Error: binance-auto-sell: linking with `cc` failed: exit code: 1"
Work-around
If I do a cargo clean
before the cargo tarpaulin
it works:
wink@3900x:~/prgs/rust/projects/binance-auto-sell (tarpaulin-requires-cargo-clean)
$ cargo clean && cargo build && cargo clean && RUST_BACKTRACE=1 cargo tarpaulin --verbose
Compiling proc-macro2 v1.0.26
Compiling version_check v0.9.3
Compiling unicode-xid v0.2.1
Compiling syn v1.0.69
Compiling libc v0.2.93
Compiling autocfg v1.0.1
Compiling unicode-segmentation v1.7.1
Compiling bitflags v1.2.1
Compiling unicode-width v0.1.8
Compiling hashbrown v0.9.1
Compiling termcolor v1.1.2
Compiling vec_map v0.8.2
Compiling strsim v0.10.0
Compiling os_str_bytes v2.4.0
Compiling lazy_static v1.4.0
Compiling textwrap v0.12.1
Compiling proc-macro-error-attr v1.0.4
Compiling proc-macro-error v1.0.4
Compiling indexmap v1.6.2
Compiling heck v0.3.2
Compiling quote v1.0.9
Compiling atty v0.2.14
Compiling clap_derive v3.0.0-beta.2
Compiling clap v3.0.0-beta.2
Compiling binance-auto-sell v0.1.0 (/home/wink/prgs/rust/projects/binance-auto-sell)
Finished dev [unoptimized + debuginfo] target(s) in 7.41s
Apr 14 12:19:25.789 DEBUG cargo_tarpaulin: set up logging
Apr 14 12:19:26.003 INFO cargo_tarpaulin: Running Tarpaulin
Apr 14 12:19:26.003 INFO cargo_tarpaulin: Building project
Compiling autocfg v1.0.1
Compiling version_check v0.9.3
Compiling proc-macro2 v1.0.26
Compiling unicode-xid v0.2.1
Compiling memchr v2.3.4
Compiling libc v0.2.93
Compiling syn v1.0.69
Compiling unicode-segmentation v1.7.1
Compiling bitflags v1.2.1
Compiling lazy_static v1.4.0
Compiling doc-comment v0.3.3
Compiling predicates-core v1.0.2
Compiling byteorder v1.4.3
Compiling hashbrown v0.9.1
Compiling unicode-width v0.1.8
Compiling regex-syntax v0.6.23
Compiling treeline v0.1.0
Compiling normalize-line-endings v0.3.0
Compiling os_str_bytes v2.4.0
Compiling difference v2.0.0
Compiling vec_map v0.8.2
Compiling termcolor v1.1.2
Compiling strsim v0.10.0
Compiling textwrap v0.12.1
Compiling predicates-tree v1.0.2
Compiling regex-automata v0.1.9
Compiling proc-macro-error-attr v1.0.4
Compiling proc-macro-error v1.0.4
Compiling num-traits v0.2.14
Compiling indexmap v1.6.2
Compiling heck v0.3.2
Compiling aho-corasick v0.7.15
Compiling bstr v0.2.15
Compiling quote v1.0.9
Compiling atty v0.2.14
Compiling wait-timeout v0.2.0
Compiling float-cmp v0.8.0
Compiling regex v1.4.5
Compiling predicates v1.0.7
Compiling assert_cmd v1.0.3
Compiling clap_derive v3.0.0-beta.2
Compiling clap v3.0.0-beta.2
Compiling binance-auto-sell v0.1.0 (/home/wink/prgs/rust/projects/binance-auto-sell)
Finished test [unoptimized + debuginfo] target(s) in 8.20s
Apr 14 12:19:34.457 INFO cargo_tarpaulin::process_handling::linux: Launching test
Apr 14 12:19:34.457 INFO cargo_tarpaulin::process_handling: running /home/wink/prgs/rust/projects/binance-auto-sell/target/debug/deps/binance_auto_sell-8b2f8d3614c3ece0
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Apr 14 12:19:35.040 INFO cargo_tarpaulin::process_handling::linux: Launching test
Apr 14 12:19:35.040 INFO cargo_tarpaulin::process_handling: running /home/wink/prgs/rust/projects/binance-auto-sell/target/debug/deps/cli-595a799ae4fee77f
running 4 tests
test test_req_params_as_env_vars ... ok
test test_req_params ... ok
test test_no_params ... ok
test test_help ... ok
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
Apr 14 12:19:36.115 INFO cargo_tarpaulin::report: Coverage Results:
|| Uncovered Lines:
|| src/main.rs: 16-17, 20-22, 24
|| Tested/Total Lines:
|| src/main.rs: 0/6
||
0.00% coverage, 0/6 lines covered
And if I add the --follow-exec
parameter I see the expected 100.00% coverage:
wink@3900x:~/prgs/rust/projects/binance-auto-sell (tarpaulin-requires-cargo-clean)
$ cargo tarpaulin --verbose --follow-exec
Apr 14 12:20:39.852 DEBUG cargo_tarpaulin: set up logging
Apr 14 12:20:39.871 INFO cargo_tarpaulin: Running Tarpaulin
Apr 14 12:20:39.871 INFO cargo_tarpaulin: Building project
Finished test [unoptimized + debuginfo] target(s) in 0.01s
Apr 14 12:20:39.930 INFO cargo_tarpaulin::process_handling::linux: Launching test
Apr 14 12:20:39.930 INFO cargo_tarpaulin::process_handling: running /home/wink/prgs/rust/projects/binance-auto-sell/target/debug/deps/cli-595a799ae4fee77f
running 4 tests
test test_no_params ... ok
test test_help ... ok
test test_req_params_as_env_vars ... ok
test test_req_params ... ok
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.28s
Apr 14 12:20:43.230 INFO cargo_tarpaulin::process_handling::linux: Launching test
Apr 14 12:20:43.230 INFO cargo_tarpaulin::process_handling: running /home/wink/prgs/rust/projects/binance-auto-sell/target/debug/deps/binance_auto_sell-8b2f8d3614c3ece0
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Apr 14 12:20:43.793 INFO cargo_tarpaulin::report: Coverage Results:
|| Uncovered Lines:
|| Tested/Total Lines:
|| src/main.rs: 6/6 +100%
||
100.00% coverage, 6/6 lines covered, +100% change in coverage
Expected behavior
The version 0.18.0-alpha1 should behave the same as 0.16.0.
System information
Arch Linux:
wink@3900x:~/prgs/rust/projects/binance-auto-sell (tarpaulin-requires-cargo-clean)
$ uname -a
Linux 3900x 5.11.11-arch1-1 #1 SMP PREEMPT Tue, 30 Mar 2021 14:10:17 +0000 x86_64 GNU/Linux
output of rustup show
:
wink@3900x:~/prgs/rust/projects/binance-auto-sell (tarpaulin-requires-cargo-clean)
$ rustup show
Default host: x86_64-unknown-linux-gnu
rustup home: /home/wink/.rustup
installed toolchains
--------------------
stable-x86_64-unknown-linux-gnu (default)
nightly-2021-03-25-x86_64-unknown-linux-gnu
nightly-x86_64-unknown-linux-gnu
installed targets for active toolchain
--------------------------------------
thumbv7em-none-eabihf
thumbv7m-none-eabi
x86_64-unknown-linux-gnu
x86_64-unknown-linux-musl
active toolchain
----------------
stable-x86_64-unknown-linux-gnu (overridden by '/home/wink/prgs/rust/projects/binance-auto-sell/rust-toolchain')
rustc 1.51.0 (2fd73fabe 2021-03-23)
My rust-toolchain file:
wink@3900x:~/prgs/rust/projects/binance-auto-sell (tarpaulin-requires-cargo-clean)
$ cat rust-toolchain
[toolchain]
channel = "stable"
components = [ "rustfmt", "rustc-dev" ]
profile = "minimal"
Metadata
Metadata
Assignees
Labels
No labels