@@ -463,7 +463,7 @@ pub fn build_rules<'a>(build: &'a Build) -> Rules {
463
463
rules. test ( "check-linkchecker" , "src/tools/linkchecker" )
464
464
. dep ( |s| s. name ( "tool-linkchecker" ) . stage ( 0 ) )
465
465
. dep ( |s| s. name ( "default:doc" ) )
466
- . default ( true )
466
+ . default ( build . config . docs )
467
467
. host ( true )
468
468
. run ( move |s| check:: linkcheck ( build, s. target ) ) ;
469
469
rules. test ( "check-cargotest" , "src/tools/cargotest" )
@@ -1407,13 +1407,20 @@ mod tests {
1407
1407
fn build ( args : & [ & str ] ,
1408
1408
extra_host : & [ & str ] ,
1409
1409
extra_target : & [ & str ] ) -> Build {
1410
+ build_ ( args, extra_host, extra_target, true )
1411
+ }
1412
+
1413
+ fn build_ ( args : & [ & str ] ,
1414
+ extra_host : & [ & str ] ,
1415
+ extra_target : & [ & str ] ,
1416
+ docs : bool ) -> Build {
1410
1417
let mut args = args. iter ( ) . map ( |s| s. to_string ( ) ) . collect :: < Vec < _ > > ( ) ;
1411
1418
args. push ( "--build" . to_string ( ) ) ;
1412
1419
args. push ( "A" . to_string ( ) ) ;
1413
1420
let flags = Flags :: parse ( & args) ;
1414
1421
1415
1422
let mut config = Config :: default ( ) ;
1416
- config. docs = true ;
1423
+ config. docs = docs ;
1417
1424
config. build = "A" . to_string ( ) ;
1418
1425
config. host = vec ! [ config. build. clone( ) ] ;
1419
1426
config. host . extend ( extra_host. iter ( ) . map ( |s| s. to_string ( ) ) ) ;
@@ -1768,4 +1775,22 @@ mod tests {
1768
1775
assert ! ( !plan. iter( ) . any( |s| s. name. contains( "tidy" ) ) ) ;
1769
1776
assert ! ( plan. iter( ) . any( |s| s. name. contains( "valgrind" ) ) ) ;
1770
1777
}
1778
+
1779
+ #[ test]
1780
+ fn test_disable_docs ( ) {
1781
+ let build = build_ ( & [ "test" ] , & [ ] , & [ ] , false ) ;
1782
+ let rules = super :: build_rules ( & build) ;
1783
+ let plan = rules. plan ( ) ;
1784
+ println ! ( "rules: {:#?}" , plan) ;
1785
+ assert ! ( !plan. iter( ) . any( |s| {
1786
+ s. name. contains( "doc-" ) || s. name. contains( "default:doc" )
1787
+ } ) ) ;
1788
+ // none of the dependencies should be a doc rule either
1789
+ assert ! ( !plan. iter( ) . any( |s| {
1790
+ rules. rules[ s. name] . deps. iter( ) . any( |dep| {
1791
+ let dep = dep( & rules. sbuild. name( s. name) ) ;
1792
+ dep. name. contains( "doc-" ) || dep. name. contains( "default:doc" )
1793
+ } )
1794
+ } ) ) ;
1795
+ }
1771
1796
}
0 commit comments