@@ -940,6 +940,7 @@ define_config! {
940940 jobs: Option <u32 > = "jobs" ,
941941 compiletest_diff_tool: Option <String > = "compiletest-diff-tool" ,
942942 ccache: Option <StringOrBool > = "ccache" ,
943+ exclude: Option <Vec <PathBuf >> = "exclude" ,
943944 }
944945}
945946
@@ -1370,22 +1371,6 @@ impl Config {
13701371 "flags.exclude" = ?flags. exclude
13711372 ) ;
13721373
1373- config. skip = flags
1374- . skip
1375- . into_iter ( )
1376- . chain ( flags. exclude )
1377- . map ( |p| {
1378- // Never return top-level path here as it would break `--skip`
1379- // logic on rustc's internal test framework which is utilized
1380- // by compiletest.
1381- if cfg ! ( windows) {
1382- PathBuf :: from ( p. to_str ( ) . unwrap ( ) . replace ( '/' , "\\ " ) )
1383- } else {
1384- p
1385- }
1386- } )
1387- . collect ( ) ;
1388-
13891374 #[ cfg( feature = "tracing" ) ]
13901375 span ! (
13911376 target: "CONFIG_HANDLING" ,
@@ -1630,8 +1615,29 @@ impl Config {
16301615 jobs,
16311616 compiletest_diff_tool,
16321617 mut ccache,
1618+ exclude,
16331619 } = toml. build . unwrap_or_default ( ) ;
16341620
1621+ let mut paths: Vec < PathBuf > = flags. skip . into_iter ( ) . chain ( flags. exclude ) . collect ( ) ;
1622+
1623+ if let Some ( exclude) = exclude {
1624+ paths. extend ( exclude) ;
1625+ }
1626+
1627+ config. skip = paths
1628+ . into_iter ( )
1629+ . map ( |p| {
1630+ // Never return top-level path here as it would break `--skip`
1631+ // logic on rustc's internal test framework which is utilized
1632+ // by compiletest.
1633+ if cfg ! ( windows) {
1634+ PathBuf :: from ( p. to_str ( ) . unwrap ( ) . replace ( '/' , "\\ " ) )
1635+ } else {
1636+ p
1637+ }
1638+ } )
1639+ . collect ( ) ;
1640+
16351641 config. jobs = Some ( threads_from_config ( flags. jobs . unwrap_or ( jobs. unwrap_or ( 0 ) ) ) ) ;
16361642
16371643 if let Some ( file_build) = build {
0 commit comments