@@ -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