compiletest: Make ./x test --test-args ... work again

It accidentally broke with a48c8e337d. The intention of that commit was
to keep existing behavior if `--exact` is not used, but it had a bug.
This commit fixes that bug.
This commit is contained in:
Martin Nordholts 2025-09-15 18:34:02 +02:00
parent f3fd3efe4f
commit bf73aac8cb

View file

@ -295,11 +295,14 @@ fn filter_tests(opts: &Config, tests: Vec<CollectedTest>) -> Vec<CollectedTest>
let mut filtered = tests;
let matches_filter = |test: &CollectedTest, filter_str: &str| {
let filterable_path = test.desc.filterable_path.as_str();
if opts.filter_exact {
filterable_path == filter_str
// When `--exact` is used we must use `filterable_path` to get
// reasonable filtering behavior.
test.desc.filterable_path.as_str() == filter_str
} else {
filterable_path.contains(filter_str)
// For compatibility we use the name (which includes the full path)
// if `--exact` is not used.
test.desc.name.contains(filter_str)
}
};