@@ -637,8 +637,8 @@ mod snapshot {
637
637
638
638
use crate :: core:: build_steps:: { compile, dist, doc, test, tool} ;
639
639
use crate :: core:: builder:: tests:: {
640
- TEST_TRIPLE_1 , TEST_TRIPLE_2 , TEST_TRIPLE_3 , configure, configure_with_args, first ,
641
- host_target, render_steps, run_build,
640
+ RenderConfig , TEST_TRIPLE_1 , TEST_TRIPLE_2 , TEST_TRIPLE_3 , configure, configure_with_args,
641
+ first , host_target, render_steps, run_build,
642
642
} ;
643
643
use crate :: core:: builder:: { Builder , Kind , StepDescription , StepMetadata } ;
644
644
use crate :: core:: config:: TargetSelection ;
@@ -1529,7 +1529,10 @@ struct ExecutedSteps {
1529
1529
1530
1530
impl ExecutedSteps {
1531
1531
fn render ( & self ) -> String {
1532
- render_steps ( & self . steps )
1532
+ self . render_with ( RenderConfig :: default ( ) )
1533
+ }
1534
+ fn render_with ( & self , config : RenderConfig ) -> String {
1535
+ render_steps ( & self . steps , config)
1533
1536
}
1534
1537
1535
1538
#[ track_caller]
@@ -1538,7 +1541,7 @@ impl ExecutedSteps {
1538
1541
if !self . contains ( & metadata) {
1539
1542
panic ! (
1540
1543
"Metadata `{}` ({metadata:?}) not found in executed steps:\n {}" ,
1541
- render_metadata( & metadata) ,
1544
+ render_metadata( & metadata, & RenderConfig :: default ( ) ) ,
1542
1545
self . render( )
1543
1546
) ;
1544
1547
}
@@ -1553,7 +1556,7 @@ impl ExecutedSteps {
1553
1556
if !self . contains_fuzzy ( & metadata) {
1554
1557
panic ! (
1555
1558
"Metadata `{}` ({metadata:?}) not found in executed steps:\n {}" ,
1556
- render_metadata( & metadata) ,
1559
+ render_metadata( & metadata, & RenderConfig :: default ( ) ) ,
1557
1560
self . render( )
1558
1561
) ;
1559
1562
}
@@ -1565,7 +1568,7 @@ impl ExecutedSteps {
1565
1568
if self . contains ( & metadata) {
1566
1569
panic ! (
1567
1570
"Metadata `{}` ({metadata:?}) found in executed steps (it should not be there):\n {}" ,
1568
- render_metadata( & metadata) ,
1571
+ render_metadata( & metadata, & RenderConfig :: default ( ) ) ,
1569
1572
self . render( )
1570
1573
) ;
1571
1574
}
@@ -1618,14 +1621,24 @@ impl ConfigBuilder {
1618
1621
}
1619
1622
}
1620
1623
1624
+ struct RenderConfig {
1625
+ normalize_host : bool ,
1626
+ }
1627
+
1628
+ impl Default for RenderConfig {
1629
+ fn default ( ) -> Self {
1630
+ Self { normalize_host : true }
1631
+ }
1632
+ }
1633
+
1621
1634
/// Renders the executed bootstrap steps for usage in snapshot tests with insta.
1622
1635
/// Only renders certain important steps.
1623
1636
/// Each value in `steps` should be a tuple of (Step, step output).
1624
1637
///
1625
1638
/// The arrow in the rendered output (`X -> Y`) means `X builds Y`.
1626
1639
/// This is similar to the output printed by bootstrap to stdout, but here it is
1627
1640
/// generated purely for the purpose of tests.
1628
- fn render_steps ( steps : & [ ExecutedStep ] ) -> String {
1641
+ fn render_steps ( steps : & [ ExecutedStep ] , config : RenderConfig ) -> String {
1629
1642
steps
1630
1643
. iter ( )
1631
1644
. filter_map ( |step| {
@@ -1635,35 +1648,35 @@ fn render_steps(steps: &[ExecutedStep]) -> String {
1635
1648
return None ;
1636
1649
} ;
1637
1650
1638
- Some ( render_metadata ( & metadata) )
1651
+ Some ( render_metadata ( & metadata, & config ) )
1639
1652
} )
1640
1653
. collect :: < Vec < _ > > ( )
1641
1654
. join ( "\n " )
1642
1655
}
1643
1656
1644
- fn render_metadata ( metadata : & StepMetadata ) -> String {
1657
+ fn render_metadata ( metadata : & StepMetadata , config : & RenderConfig ) -> String {
1645
1658
let mut record = format ! ( "[{}] " , metadata. kind. as_str( ) ) ;
1646
1659
if let Some ( compiler) = metadata. built_by {
1647
- write ! ( record, "{} -> " , render_compiler( compiler) ) ;
1660
+ write ! ( record, "{} -> " , render_compiler( compiler, config ) ) ;
1648
1661
}
1649
1662
let stage = metadata. get_stage ( ) . map ( |stage| format ! ( "{stage} " ) ) . unwrap_or_default ( ) ;
1650
- write ! ( record, "{} {stage}<{}>" , metadata. name, normalize_target( metadata. target) ) ;
1663
+ write ! ( record, "{} {stage}<{}>" , metadata. name, normalize_target( metadata. target, config ) ) ;
1651
1664
if let Some ( metadata) = & metadata. metadata {
1652
1665
write ! ( record, " {metadata}" ) ;
1653
1666
}
1654
1667
record
1655
1668
}
1656
1669
1657
- fn normalize_target ( target : TargetSelection ) -> String {
1658
- target
1659
- . to_string ( )
1660
- . replace ( & host_target ( ) , "host" )
1661
- . replace ( TEST_TRIPLE_1 , "target1" )
1662
- . replace ( TEST_TRIPLE_2 , "target2" )
1670
+ fn normalize_target ( target : TargetSelection , config : & RenderConfig ) -> String {
1671
+ let mut target = target . to_string ( ) ;
1672
+ if config . normalize_host {
1673
+ target = target . replace ( & host_target ( ) , "host" ) ;
1674
+ }
1675
+ target . replace ( TEST_TRIPLE_1 , "target1" ) . replace ( TEST_TRIPLE_2 , "target2" )
1663
1676
}
1664
1677
1665
- fn render_compiler ( compiler : Compiler ) -> String {
1666
- format ! ( "rustc {} <{}>" , compiler. stage, normalize_target( compiler. host) )
1678
+ fn render_compiler ( compiler : Compiler , config : & RenderConfig ) -> String {
1679
+ format ! ( "rustc {} <{}>" , compiler. stage, normalize_target( compiler. host, config ) )
1667
1680
}
1668
1681
1669
1682
fn host_target ( ) -> String {
0 commit comments