You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
cargo tarpaulin --engine Llvm
# ...
test tests::version_negotiation ... ok
test tests::zero_length_new_token ... ok
test tests::zero_rtt ... ok
test result: ok. 468 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 23.48s
Using the --implicit-test-threads flag:
cargo tarpaulin --engine Ptrace --implicit-test-threads
# ...
test tests::version_negotiation ... ok
test tests::zero_length_new_token ... ok
test tests::zero_rtt ... ok
test result: ok. 468 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 43.08s
I was hoping to get to the bottom of this issue myself, but I am way out of my depth. As someone doing this in his free time, I appreciate the free time of anyone who can look at this issue and evaluate it.
Thank you :) ⛵
The text was updated successfully, but these errors were encountered:
I'll have to look into it deeper to see where it's happening and why but it's not expected that every project will work perfectly with tarpaulin with the default configuration. I try and do a best-case default config that fits the most people.
Unfortunately, if I don't specify test threads explicitly it ends up using a single test thread because of some of the ptrace things. Anyone who's tests rely on CLI arguments or forwards them to another process may as a result experience test failures.
If the test also fails with cargo test -- --test-threads 4 then it shows that the quiche tests aren't working with out-of-the-box cargo test options available. If it's easy to detect and fix in tarpaulin I'll naturally seek to fix it, but if not this'll probably be closed as it's not fully my concern if a library decides to break cargo test features 🤷
Problem Statement
Tests in the quiche crate that pass when running
cargo test
are failing when executed bycargo tarpaulin
under the following conditions:ptrace
is the coverage tracing backend used--implicit-test-threads
is omittedExpected Behavior
Tests that pass when executed by
cargo test
should also pass when executed bycargo tarpaulin
Steps to Reproduce
quiche/
subdirectory (quiche/quiche/
)The following tests will fail:
I've attached the (compressed)
ptrace
dump to this issue as well as the verbosecargo tarpaulin
output.Workarounds
Llvm
engine instead ofptrace
:--implicit-test-threads
flag:Tooling & System Versions
cargo-tarpaulin
:quiche
:rustc
:cargo
:My system (NixOS):
Linux framework 6.10.5 #1-NixOS SMP PREEMPT_DYNAMIC Wed Aug 14 13:34:38 UTC 2024 x86_64 GNU/Linux
I was hoping to get to the bottom of this issue myself, but I am way out of my depth. As someone doing this in his free time, I appreciate the free time of anyone who can look at this issue and evaluate it.
Thank you :) ⛵
The text was updated successfully, but these errors were encountered: