@@ -630,6 +630,46 @@ fn any_debug() {
630630    assert_eq ! ( x. downcast_ref:: <MyStruct >( ) ,  Some ( & MyStruct  {  x:  7  } ) ) ; 
631631} 
632632
633+ #[ test]  
634+ fn  test_check_compiler_doesnt_build_llvm ( )  { 
635+     // Checking the stage 1 compiler uses the bootstrap compiler, and therefore 
636+     // should not need to build LLVM. 
637+     { 
638+         let  config = configure_with_args ( 
639+             & [ "check" ,  "compiler" ,  "--stage=1" ] , 
640+             & [ TEST_TRIPLE_1 ] , 
641+             & [ TEST_TRIPLE_1 ] , 
642+         ) ; 
643+         let  mut  cache = run_build ( & config. paths . clone ( ) ,  config) ; 
644+ 
645+         assert ! ( !cache. contains:: <llvm:: Llvm >( ) ) ; 
646+     } 
647+ 
648+     // Checking the stage 1 library uses the stage 1 compiler, so it will need LLVM. 
649+     { 
650+         let  config = configure_with_args ( 
651+             & [ "check" ,  "library" ,  "--stage=1" ] , 
652+             & [ TEST_TRIPLE_1 ] , 
653+             & [ TEST_TRIPLE_1 ] , 
654+         ) ; 
655+         let  mut  cache = run_build ( & config. paths . clone ( ) ,  config) ; 
656+ 
657+         assert ! ( cache. contains:: <llvm:: Llvm >( ) ) ; 
658+     } 
659+ 
660+     // Checking the stage 2 compiler uses the stage 1 compiler, so it will need LLVM. 
661+     { 
662+         let  config = configure_with_args ( 
663+             & [ "check" ,  "compiler" ,  "--stage=2" ] , 
664+             & [ TEST_TRIPLE_1 ] , 
665+             & [ TEST_TRIPLE_1 ] , 
666+         ) ; 
667+         let  mut  cache = run_build ( & config. paths . clone ( ) ,  config) ; 
668+ 
669+         assert ! ( cache. contains:: <llvm:: Llvm >( ) ) ; 
670+     } 
671+ } 
672+ 
633673/// These tests use insta for snapshot testing. 
634674/// See bootstrap's README on how to bless the snapshots. 
635675mod  snapshot { 
@@ -1294,7 +1334,6 @@ mod snapshot {
12941334            ctx. config( "check" ) 
12951335                . path( "compiler" ) 
12961336                . render_steps( ) ,  @r" 
1297-         [build] llvm <host> 
12981337        [check] rustc 0 <host> -> rustc 1 <host> 
12991338        [check] rustc 0 <host> -> cranelift 1 <host> 
13001339        [check] rustc 0 <host> -> gcc 1 <host> 
@@ -1304,7 +1343,6 @@ mod snapshot {
13041343            ctx. config( "check" ) 
13051344                . path( "rustc" ) 
13061345                . render_steps( ) ,  @r" 
1307-         [build] llvm <host> 
13081346        [check] rustc 0 <host> -> rustc 1 <host> 
13091347        " ) ; 
13101348    } 
@@ -1324,7 +1362,6 @@ mod snapshot {
13241362                . path( "compiler" ) 
13251363                . stage( 1 ) 
13261364                . render_steps( ) ,  @r" 
1327-         [build] llvm <host> 
13281365        [check] rustc 0 <host> -> rustc 1 <host> 
13291366        [check] rustc 0 <host> -> cranelift 1 <host> 
13301367        [check] rustc 0 <host> -> gcc 1 <host> 
@@ -1360,6 +1397,7 @@ mod snapshot {
13601397        [build] rustc 0 <host> -> rustc 1 <host> 
13611398        [build] rustc 1 <host> -> std 1 <host> 
13621399        [build] rustc 1 <host> -> std 1 <target1> 
1400+         [build] llvm <target1> 
13631401        [check] rustc 1 <host> -> rustc 2 <target1> 
13641402        [check] rustc 1 <host> -> Rustdoc 2 <target1> 
13651403        [check] rustc 1 <host> -> cranelift 2 <target1> 
@@ -1456,7 +1494,6 @@ mod snapshot {
14561494                . paths( & [ "library" ,  "compiler" ] ) 
14571495                . args( & args) 
14581496                . render_steps( ) ,  @r" 
1459-         [build] llvm <host> 
14601497        [check] rustc 0 <host> -> rustc 1 <host> 
14611498        [check] rustc 0 <host> -> cranelift 1 <host> 
14621499        [check] rustc 0 <host> -> gcc 1 <host> 
@@ -1470,7 +1507,6 @@ mod snapshot {
14701507            ctx. config( "check" ) 
14711508                . path( "miri" ) 
14721509                . render_steps( ) ,  @r" 
1473-         [build] llvm <host> 
14741510        [check] rustc 0 <host> -> rustc 1 <host> 
14751511        [check] rustc 0 <host> -> Miri 1 <host> 
14761512        " ) ; 
@@ -1491,7 +1527,6 @@ mod snapshot {
14911527                . path( "miri" ) 
14921528                . stage( 1 ) 
14931529                . render_steps( ) ,  @r" 
1494-         [build] llvm <host> 
14951530        [check] rustc 0 <host> -> rustc 1 <host> 
14961531        [check] rustc 0 <host> -> Miri 1 <host> 
14971532        " ) ; 
@@ -1544,7 +1579,6 @@ mod snapshot {
15441579            ctx. config( "check" ) 
15451580                . path( "rustc_codegen_cranelift" ) 
15461581                . render_steps( ) ,  @r" 
1547-         [build] llvm <host> 
15481582        [check] rustc 0 <host> -> rustc 1 <host> 
15491583        [check] rustc 0 <host> -> cranelift 1 <host> 
15501584        [check] rustc 0 <host> -> gcc 1 <host> 
@@ -1558,7 +1592,6 @@ mod snapshot {
15581592            ctx. config( "check" ) 
15591593                . path( "rust-analyzer" ) 
15601594                . render_steps( ) ,  @r" 
1561-         [build] llvm <host> 
15621595        [check] rustc 0 <host> -> rustc 1 <host> 
15631596        [check] rustc 0 <host> -> rust-analyzer 1 <host> 
15641597        " ) ; 
0 commit comments