Skip to content

Commit a6509f8

Browse files
Only run asm tests if they match the current codegen backend
1 parent db3427d commit a6509f8

File tree

1 file changed

+20
-1
lines changed
  • src/tools/compiletest/src

1 file changed

+20
-1
lines changed

src/tools/compiletest/src/lib.rs

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ use std::time::SystemTime;
3131
use std::{env, fs, vec};
3232

3333
use build_helper::git::{get_git_modified_files, get_git_untracked_files};
34-
use camino::{Utf8Path, Utf8PathBuf};
34+
use camino::{Utf8Component, Utf8Path, Utf8PathBuf};
3535
use getopts::Options;
3636
use rayon::iter::{ParallelBridge, ParallelIterator};
3737
use tracing::debug;
@@ -799,6 +799,25 @@ fn collect_tests_from_dir(
799799
return Ok(TestCollector::new());
800800
}
801801

802+
let mut components = dir.components().rev();
803+
if let Some(Utf8Component::Normal(last)) = components.next()
804+
&& let Some(("asm", backend)) = last.split_once('-')
805+
&& let Some(Utf8Component::Normal(parent)) = components.next()
806+
&& parent == "ui"
807+
&& let Some(Utf8Component::Normal(grand_parent)) = components.next()
808+
&& grand_parent == "tests"
809+
&& let Ok(backend) = CodegenBackend::try_from(backend)
810+
&& backend != cx.config.codegen_backend
811+
{
812+
// We ignore asm tests which don't match the current codegen backend.
813+
println!(
814+
"Ignoring tests in `{dir}` because they don't match the configured codegen \
815+
backend (`{}`)",
816+
cx.config.codegen_backend.as_str(),
817+
);
818+
return Ok(TestCollector::new());
819+
}
820+
802821
// For run-make tests, a "test file" is actually a directory that contains an `rmake.rs`.
803822
if cx.config.mode == TestMode::RunMake {
804823
let mut collector = TestCollector::new();

0 commit comments

Comments
 (0)