From 5fc08d6b7f632857c32a4346556712fd99602b82 Mon Sep 17 00:00:00 2001 From: Christian Legnitto Date: Tue, 1 Jul 2025 23:07:34 +0200 Subject: [PATCH 1/2] Support more test names in difftest These all now work. Previously, the path ones did not work: - cargo difftest -- difftests::arch::workgroup_memory (original format) - cargo difftest -- arch/workgroup_memory (path-like format) - cargo difftest -- arch (directory filter) --- tests/difftests/bin/src/main.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tests/difftests/bin/src/main.rs b/tests/difftests/bin/src/main.rs index 9c6b4236a0..ffa1c17bdf 100644 --- a/tests/difftests/bin/src/main.rs +++ b/tests/difftests/bin/src/main.rs @@ -111,6 +111,27 @@ fn main() -> Result<()> { }) .collect(); + // If filters are provided that look like paths (contain '/'), convert them to test names + let opts = if opts.filters.iter().any(|f| f.contains('/')) { + let mut new_opts = opts; + new_opts.filters = new_opts + .filters + .into_iter() + .map(|filter| { + if filter.contains('/') { + // Convert path-like filter to test name format + let path_filter = filter.replace('/', "::"); + format!("difftests::{}", path_filter) + } else { + filter + } + }) + .collect(); + new_opts + } else { + opts + }; + let passed = run_tests_console(&opts, tests).expect("Failed to run tests"); process::exit(if passed { 0 } else { 1 }); From 2c9658b4e4d3566ddd4a31f8d79b2ec4ca2f3cb5 Mon Sep 17 00:00:00 2001 From: Firestar99 Date: Wed, 2 Jul 2025 11:23:44 +0200 Subject: [PATCH 2/2] remove unnecessary `difftests::` prepend --- tests/difftests/bin/src/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/difftests/bin/src/main.rs b/tests/difftests/bin/src/main.rs index ffa1c17bdf..00e94c1f57 100644 --- a/tests/difftests/bin/src/main.rs +++ b/tests/difftests/bin/src/main.rs @@ -121,7 +121,7 @@ fn main() -> Result<()> { if filter.contains('/') { // Convert path-like filter to test name format let path_filter = filter.replace('/', "::"); - format!("difftests::{}", path_filter) + format!("{}", path_filter) } else { filter }