@@ -9,8 +9,8 @@ use crate::build;
99use crate :: config:: { Channel , ConfigInfo } ;
1010use crate :: utils:: {
1111 create_dir, get_sysroot_dir, get_toolchain, git_clone, git_clone_root_dir, remove_file,
12- run_command, run_command_with_env, run_command_with_output_and_env , rustc_version_info ,
13- split_args, walk_dir,
12+ run_command, run_command_with_env, run_command_with_output , run_command_with_output_and_env ,
13+ rustc_version_info , split_args, walk_dir,
1414} ;
1515
1616type Env = HashMap < String , String > ;
@@ -484,6 +484,31 @@ fn setup_rustc(env: &mut Env, args: &TestArg) -> Result<PathBuf, String> {
484484 } else {
485485 run_command_with_output_and_env ( & [ & "git" , & "checkout" ] , rust_dir, Some ( env) ) ?;
486486 }
487+
488+ let mut patches = Vec :: new ( ) ;
489+ walk_dir (
490+ "patches/tests" ,
491+ & mut |_| Ok ( ( ) ) ,
492+ & mut |file_path : & Path | {
493+ patches. push ( file_path. to_path_buf ( ) ) ;
494+ Ok ( ( ) )
495+ } ,
496+ false ,
497+ ) ?;
498+ patches. sort ( ) ;
499+ // TODO: remove duplication with prepare.rs by creating a apply_patch function in the utils
500+ // module.
501+ for file_path in patches {
502+ println ! ( "[GIT] apply `{}`" , file_path. display( ) ) ;
503+ let path = Path :: new ( "../.." ) . join ( file_path) ;
504+ run_command_with_output ( & [ & "git" , & "apply" , & path] , rust_dir) ?;
505+ run_command_with_output ( & [ & "git" , & "add" , & "-A" ] , rust_dir) ?;
506+ run_command_with_output (
507+ & [ & "git" , & "commit" , & "--no-gpg-sign" , & "-m" , & format ! ( "Patch {}" , path. display( ) ) ] ,
508+ rust_dir,
509+ ) ?;
510+ }
511+
487512 let cargo = String :: from_utf8 (
488513 run_command_with_env ( & [ & "rustup" , & "which" , & "cargo" ] , rust_dir, Some ( env) ) ?. stdout ,
489514 )
@@ -509,14 +534,17 @@ fn setup_rustc(env: &mut Env, args: &TestArg) -> Result<PathBuf, String> {
509534 which FileCheck-11 || \
510535 which FileCheck-12 || \
511536 which FileCheck-13 || \
512- which FileCheck-14",
537+ which FileCheck-14 || \
538+ which FileCheck",
513539 ] ,
514540 rust_dir,
515541 Some ( env) ,
516542 ) {
517543 Ok ( cmd) => String :: from_utf8_lossy ( & cmd. stdout ) . to_string ( ) ,
518544 Err ( _) => {
519545 eprintln ! ( "Failed to retrieve LLVM FileCheck, ignoring..." ) ;
546+ // FIXME: the test tests/run-make/no-builtins-attribute will fail if we cannot find
547+ // FileCheck.
520548 String :: new ( )
521549 }
522550 } ;
@@ -1089,19 +1117,18 @@ where
10891117}
10901118
10911119fn test_rustc ( env : & Env , args : & TestArg ) -> Result < ( ) , String > {
1092- // test_rustc_inner(env, args, |_| Ok(false), false, "run-make")?;
1120+ test_rustc_inner ( env, args, |_| Ok ( false ) , false , "run-make" ) ?;
10931121 test_rustc_inner ( env, args, |_| Ok ( false ) , false , "ui" )
10941122}
10951123
10961124fn test_failing_rustc ( env : & Env , args : & TestArg ) -> Result < ( ) , String > {
1097- let result1 = Ok ( ( ) ) ;
1098- /*test_rustc_inner(
1125+ let result1 = test_rustc_inner (
10991126 env,
11001127 args,
11011128 retain_files_callback ( "tests/failing-run-make-tests.txt" , "run-make" ) ,
11021129 false ,
11031130 "run-make" ,
1104- )*/
1131+ ) ;
11051132
11061133 let result2 = test_rustc_inner (
11071134 env,
@@ -1122,14 +1149,13 @@ fn test_successful_rustc(env: &Env, args: &TestArg) -> Result<(), String> {
11221149 false ,
11231150 "ui" ,
11241151 ) ?;
1125- Ok ( ( ) )
1126- /*test_rustc_inner(
1152+ test_rustc_inner (
11271153 env,
11281154 args,
11291155 remove_files_callback ( "tests/failing-run-make-tests.txt" , "run-make" ) ,
11301156 false ,
11311157 "run-make" ,
1132- )*/
1158+ )
11331159}
11341160
11351161fn test_failing_ui_pattern_tests ( env : & Env , args : & TestArg ) -> Result < ( ) , String > {
0 commit comments