about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMartin Nordholts <martin.nordholts@codetale.se>2025-09-15 18:34:02 +0200
committerMartin Nordholts <martin.nordholts@codetale.se>2025-09-15 18:37:47 +0200
commitbf73aac8cbdfeff983dce44b883993be2ae89151 (patch)
tree9366c2a5e505cc0523d7515a6e2753eef2085666
parentf3fd3efe4f698ad9dc2ccd6b46a3b07e1bc911da (diff)
downloadrust-bf73aac8cbdfeff983dce44b883993be2ae89151.tar.gz
rust-bf73aac8cbdfeff983dce44b883993be2ae89151.zip
compiletest: Make `./x test --test-args ...` work again
It accidentally broke with a48c8e337d1. 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.
-rw-r--r--src/tools/compiletest/src/executor.rs9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/tools/compiletest/src/executor.rs b/src/tools/compiletest/src/executor.rs
index 37cc17351d5..c8e13d44573 100644
--- a/src/tools/compiletest/src/executor.rs
+++ b/src/tools/compiletest/src/executor.rs
@@ -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)
         }
     };