@@ -31,7 +31,7 @@ use std::time::SystemTime;
3131use  std:: { env,  fs,  vec} ; 
3232
3333use  build_helper:: git:: { get_git_modified_files,  get_git_untracked_files} ; 
34- use  camino:: { Utf8Path ,  Utf8PathBuf } ; 
34+ use  camino:: { Utf8Component ,   Utf8Path ,  Utf8PathBuf } ; 
3535use  getopts:: Options ; 
3636use  rayon:: iter:: { ParallelBridge ,  ParallelIterator } ; 
3737use  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+ , 
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