libtest filters should include the test crate's name in the string matched against the filter #141862
Labels
A-libtest
Area: `#[test]` / the `test` library
C-discussion
Category: Discussion or questions that doesn't represent real issues.
T-libs-api
Relevant to the library API team, which will review and decide on the PR/issue.
T-testing-devex
Relevant to the testing devex team (testing DX), which will review and decide on the PR/issue.
Let's say I have a whole bunch of .rs files in my
tests
folder, like:floats/lib.rs
time.rs
thread.rs
Now I want to run just the float tests. Naturally I'll do something like
cargo test -- float
. Sadly that does not work since this runs the tests that havefloat
as a substring in the name of the test (mod1::mod2::test_fn
), but the name of the crate is not included.This is particularly confusing in the rustc repo itself, where
./x test library/{core,std} -- float
will run the float tests in libcore but not the one in libstd: libcore has a single large test crate with a module calledfloats
, while std has a bunch of separate test crates, one of which is calledfloats
.I think libtest should be changed to put the crate name in the string used for filtering, thus avoiding this confusing and surprising behavior.
@rust-lang/libs-api I've been told the libtest CLI API is in your purview. Is there any chance the behavior of filters could be adjusted? This would lead to strictly more tests being included in any given filter, which at least won't silently reduce test coverage (except when combined with
--skip
) -- but it could theoretically break a setup where that then includes a test that does not actually work.The text was updated successfully, but these errors were encountered: