@@ -10,8 +10,8 @@ use crate::core::build_steps::doc::DocumentationFormat;
1010use  crate :: core:: config:: Config ; 
1111use  crate :: utils:: cache:: ExecutedStep ; 
1212use  crate :: utils:: helpers:: get_host_target; 
13- use  crate :: utils:: tests:: ConfigBuilder ; 
1413use  crate :: utils:: tests:: git:: { GitCtx ,  git_test} ; 
14+ use  crate :: utils:: tests:: { ConfigBuilder ,  TestCtx } ; 
1515
1616static  TEST_TRIPLE_1 :  & str  = "i686-unknown-haiku" ; 
1717static  TEST_TRIPLE_2 :  & str  = "i686-unknown-hurd-gnu" ; 
@@ -22,38 +22,13 @@ fn configure(cmd: &str, host: &[&str], target: &[&str]) -> Config {
2222} 
2323
2424fn  configure_with_args ( cmd :  & [ & str ] ,  host :  & [ & str ] ,  target :  & [ & str ] )  -> Config  { 
25-     let  cmd = cmd. iter ( ) . copied ( ) . map ( String :: from) . collect :: < Vec < _ > > ( ) ; 
26-     let  mut  config = Config :: parse ( Flags :: parse ( & cmd) ) ; 
27-     // don't save toolstates 
28-     config. save_toolstates  = None ; 
29-     config. set_dry_run ( DryRun :: SelfCheck ) ; 
30- 
31-     // Ignore most submodules, since we don't need them for a dry run, and the 
32-     // tests run much faster without them. 
33-     // 
34-     // The src/doc/book submodule is needed because TheBook step tries to 
35-     // access files even during a dry-run (may want to consider just skipping 
36-     // that in a dry run). 
37-     let  submodule_build = Build :: new ( Config  { 
38-         // don't include LLVM, so CI doesn't require ninja/cmake to be installed 
39-         rust_codegen_backends :  vec ! [ ] , 
40-         ..Config :: parse ( Flags :: parse ( & [ "check" . to_owned ( ) ] ) ) 
41-     } ) ; 
42-     submodule_build. require_submodule ( "src/doc/book" ,  None ) ; 
43-     config. submodules  = Some ( false ) ; 
44- 
45-     config. ninja_in_file  = false ; 
46-     // try to avoid spurious failures in dist where we create/delete each others file 
47-     // HACK: rather than pull in `tempdir`, use the one that cargo has conveniently created for us 
48-     let  dir = Path :: new ( env ! ( "OUT_DIR" ) ) 
49-         . join ( "tmp-rustbuild-tests" ) 
50-         . join ( & thread:: current ( ) . name ( ) . unwrap_or ( "unknown" ) . replace ( ":" ,  "-" ) ) ; 
51-     t ! ( fs:: create_dir_all( & dir) ) ; 
52-     config. out  = dir; 
53-     config. host_target  = TargetSelection :: from_user ( TEST_TRIPLE_1 ) ; 
54-     config. hosts  = host. iter ( ) . map ( |s| TargetSelection :: from_user ( s) ) . collect ( ) ; 
55-     config. targets  = target. iter ( ) . map ( |s| TargetSelection :: from_user ( s) ) . collect ( ) ; 
56-     config
25+     TestCtx :: new ( ) 
26+         . config ( cmd[ 0 ] ) 
27+         . args ( & cmd[ 1 ..] ) 
28+         . hosts ( host) 
29+         . targets ( target) 
30+         . args ( & [ "--build" ,  TEST_TRIPLE_1 ] ) 
31+         . create_config ( ) 
5732} 
5833
5934fn  first < A ,  B > ( v :  Vec < ( A ,  B ) > )  -> Vec < A >  { 
@@ -547,8 +522,8 @@ mod snapshot {
547522
548523    use  crate :: core:: build_steps:: { compile,  dist,  doc,  test,  tool} ; 
549524    use  crate :: core:: builder:: tests:: { 
550-         RenderConfig ,  TEST_TRIPLE_1 ,  TEST_TRIPLE_2 ,  TEST_TRIPLE_3 ,  configure,  configure_with_args , 
551-         first ,  host_target ,   render_steps,  run_build, 
525+         RenderConfig ,  TEST_TRIPLE_1 ,  TEST_TRIPLE_2 ,  TEST_TRIPLE_3 ,  configure,  first ,  host_target , 
526+         render_steps,  run_build, 
552527    } ; 
553528    use  crate :: core:: builder:: { Builder ,  Kind ,  StepDescription ,  StepMetadata } ; 
554529    use  crate :: core:: config:: TargetSelection ; 
0 commit comments