@@ -35,7 +35,7 @@ impl TestOpts {
3535 fn new ( ) -> TestOpts {
3636 TestOpts {
3737 list : false ,
38- filter : None ,
38+ filters : vec ! [ ] ,
3939 filter_exact : false ,
4040 force_run_in_process : false ,
4141 exclude_should_panic : false ,
@@ -469,43 +469,59 @@ pub fn exact_filter_match() {
469469 }
470470
471471 let substr =
472- filter_tests ( & TestOpts { filter : Some ( "base" . into ( ) ) , ..TestOpts :: new ( ) } , tests ( ) ) ;
472+ filter_tests ( & TestOpts { filters : vec ! [ "base" . into( ) ] , ..TestOpts :: new ( ) } , tests ( ) ) ;
473473 assert_eq ! ( substr. len( ) , 4 ) ;
474474
475- let substr = filter_tests ( & TestOpts { filter : Some ( "bas" . into ( ) ) , ..TestOpts :: new ( ) } , tests ( ) ) ;
475+ let substr = filter_tests ( & TestOpts { filters : vec ! [ "bas" . into( ) ] , ..TestOpts :: new ( ) } , tests ( ) ) ;
476476 assert_eq ! ( substr. len( ) , 4 ) ;
477477
478478 let substr =
479- filter_tests ( & TestOpts { filter : Some ( "::test" . into ( ) ) , ..TestOpts :: new ( ) } , tests ( ) ) ;
479+ filter_tests ( & TestOpts { filters : vec ! [ "::test" . into( ) ] , ..TestOpts :: new ( ) } , tests ( ) ) ;
480480 assert_eq ! ( substr. len( ) , 3 ) ;
481481
482482 let substr =
483- filter_tests ( & TestOpts { filter : Some ( "base::test" . into ( ) ) , ..TestOpts :: new ( ) } , tests ( ) ) ;
483+ filter_tests ( & TestOpts { filters : vec ! [ "base::test" . into( ) ] , ..TestOpts :: new ( ) } , tests ( ) ) ;
484484 assert_eq ! ( substr. len( ) , 3 ) ;
485485
486+ let substr = filter_tests (
487+ & TestOpts { filters : vec ! [ "test1" . into( ) , "test2" . into( ) ] , ..TestOpts :: new ( ) } ,
488+ tests ( ) ,
489+ ) ;
490+ assert_eq ! ( substr. len( ) , 2 ) ;
491+
486492 let exact = filter_tests (
487- & TestOpts { filter : Some ( "base" . into ( ) ) , filter_exact : true , ..TestOpts :: new ( ) } ,
493+ & TestOpts { filters : vec ! [ "base" . into( ) ] , filter_exact : true , ..TestOpts :: new ( ) } ,
488494 tests ( ) ,
489495 ) ;
490496 assert_eq ! ( exact. len( ) , 1 ) ;
491497
492498 let exact = filter_tests (
493- & TestOpts { filter : Some ( "bas" . into ( ) ) , filter_exact : true , ..TestOpts :: new ( ) } ,
499+ & TestOpts { filters : vec ! [ "bas" . into( ) ] , filter_exact : true , ..TestOpts :: new ( ) } ,
494500 tests ( ) ,
495501 ) ;
496502 assert_eq ! ( exact. len( ) , 0 ) ;
497503
498504 let exact = filter_tests (
499- & TestOpts { filter : Some ( "::test" . into ( ) ) , filter_exact : true , ..TestOpts :: new ( ) } ,
505+ & TestOpts { filters : vec ! [ "::test" . into( ) ] , filter_exact : true , ..TestOpts :: new ( ) } ,
500506 tests ( ) ,
501507 ) ;
502508 assert_eq ! ( exact. len( ) , 0 ) ;
503509
504510 let exact = filter_tests (
505- & TestOpts { filter : Some ( "base::test" . into ( ) ) , filter_exact : true , ..TestOpts :: new ( ) } ,
511+ & TestOpts { filters : vec ! [ "base::test" . into( ) ] , filter_exact : true , ..TestOpts :: new ( ) } ,
506512 tests ( ) ,
507513 ) ;
508514 assert_eq ! ( exact. len( ) , 1 ) ;
515+
516+ let exact = filter_tests (
517+ & TestOpts {
518+ filters : vec ! [ "base" . into( ) , "base::test" . into( ) ] ,
519+ filter_exact : true ,
520+ ..TestOpts :: new ( )
521+ } ,
522+ tests ( ) ,
523+ ) ;
524+ assert_eq ! ( exact. len( ) , 2 ) ;
509525}
510526
511527#[ test]
0 commit comments