@@ -303,6 +303,7 @@ pub struct TestOpts {
303303 pub color : ColorConfig ,
304304 pub quiet : bool ,
305305 pub test_threads : Option < usize > ,
306+ pub skip : Vec < String > ,
306307}
307308
308309impl TestOpts {
@@ -318,6 +319,7 @@ impl TestOpts {
318319 color : AutoColor ,
319320 quiet : false ,
320321 test_threads : None ,
322+ skip : vec ! [ ] ,
321323 }
322324 }
323325}
@@ -337,6 +339,8 @@ fn optgroups() -> Vec<getopts::OptGroup> {
337339 task, allow printing directly") ,
338340 getopts:: optopt( "" , "test-threads" , "Number of threads used for running tests \
339341 in parallel", "n_threads" ) ,
342+ getopts:: optmulti( "" , "skip" , "Skip tests whose names contain FILTER (this flag can \
343+ be used multiple times)", "FILTER" ) ,
340344 getopts:: optflag( "q" , "quiet" , "Display one character per test instead of one line" ) ,
341345 getopts:: optopt( "" , "color" , "Configure coloring of output:
342346 auto = colorize if stdout is a tty and tests are run on serially (default);
@@ -446,6 +450,7 @@ pub fn parse_opts(args: &[String]) -> Option<OptRes> {
446450 color : color,
447451 quiet : quiet,
448452 test_threads : test_threads,
453+ skip : matches. opt_strs ( "skip" ) ,
449454 } ;
450455
451456 Some ( Ok ( test_opts) )
@@ -1095,6 +1100,11 @@ pub fn filter_tests(opts: &TestOpts, tests: Vec<TestDescAndFn>) -> Vec<TestDescA
10951100 }
10961101 } ;
10971102
1103+ // Skip tests that match any of the skip filters
1104+ filtered = filtered. into_iter ( )
1105+ . filter ( |t| !opts. skip . iter ( ) . any ( |sf| t. desc . name . as_slice ( ) . contains ( & sf[ ..] ) ) )
1106+ . collect ( ) ;
1107+
10981108 // Maybe pull out the ignored test and unignore them
10991109 filtered = if !opts. run_ignored {
11001110 filtered
0 commit comments