@@ -34,7 +34,7 @@ impl TestOpts {
3434 fn new ( ) -> TestOpts {
3535 TestOpts {
3636 list : false ,
37- filter : None ,
37+ filters : vec ! [ ] ,
3838 filter_exact : false ,
3939 force_run_in_process : false ,
4040 exclude_should_panic : false ,
@@ -473,43 +473,60 @@ pub fn exact_filter_match() {
473473 }
474474
475475 let substr =
476- filter_tests ( & TestOpts { filter : Some ( "base" . into ( ) ) , ..TestOpts :: new ( ) } , tests ( ) ) ;
476+ filter_tests ( & TestOpts { filters : vec ! [ "base" . into( ) ] , ..TestOpts :: new ( ) } , tests ( ) ) ;
477477 assert_eq ! ( substr. len( ) , 4 ) ;
478478
479- let substr = filter_tests ( & TestOpts { filter : Some ( "bas" . into ( ) ) , ..TestOpts :: new ( ) } , tests ( ) ) ;
479+ let substr =
480+ filter_tests ( & TestOpts { filters : vec ! [ "bas" . into( ) ] , ..TestOpts :: new ( ) } , tests ( ) ) ;
480481 assert_eq ! ( substr. len( ) , 4 ) ;
481482
482483 let substr =
483- filter_tests ( & TestOpts { filter : Some ( "::test" . into ( ) ) , ..TestOpts :: new ( ) } , tests ( ) ) ;
484+ filter_tests ( & TestOpts { filters : vec ! [ "::test" . into( ) ] , ..TestOpts :: new ( ) } , tests ( ) ) ;
484485 assert_eq ! ( substr. len( ) , 3 ) ;
485486
486487 let substr =
487- filter_tests ( & TestOpts { filter : Some ( "base::test" . into ( ) ) , ..TestOpts :: new ( ) } , tests ( ) ) ;
488+ filter_tests ( & TestOpts { filters : vec ! [ "base::test" . into( ) ] , ..TestOpts :: new ( ) } , tests ( ) ) ;
488489 assert_eq ! ( substr. len( ) , 3 ) ;
489490
491+ let substr = filter_tests (
492+ & TestOpts { filters : vec ! [ "test1" . into( ) , "test2" . into( ) ] , ..TestOpts :: new ( ) } ,
493+ tests ( ) ,
494+ ) ;
495+ assert_eq ! ( substr. len( ) , 2 ) ;
496+
490497 let exact = filter_tests (
491- & TestOpts { filter : Some ( "base" . into ( ) ) , filter_exact : true , ..TestOpts :: new ( ) } ,
498+ & TestOpts { filters : vec ! [ "base" . into( ) ] , filter_exact : true , ..TestOpts :: new ( ) } ,
492499 tests ( ) ,
493500 ) ;
494501 assert_eq ! ( exact. len( ) , 1 ) ;
495502
496503 let exact = filter_tests (
497- & TestOpts { filter : Some ( "bas" . into ( ) ) , filter_exact : true , ..TestOpts :: new ( ) } ,
504+ & TestOpts { filters : vec ! [ "bas" . into( ) ] , filter_exact : true , ..TestOpts :: new ( ) } ,
498505 tests ( ) ,
499506 ) ;
500507 assert_eq ! ( exact. len( ) , 0 ) ;
501508
502509 let exact = filter_tests (
503- & TestOpts { filter : Some ( "::test" . into ( ) ) , filter_exact : true , ..TestOpts :: new ( ) } ,
510+ & TestOpts { filters : vec ! [ "::test" . into( ) ] , filter_exact : true , ..TestOpts :: new ( ) } ,
504511 tests ( ) ,
505512 ) ;
506513 assert_eq ! ( exact. len( ) , 0 ) ;
507514
508515 let exact = filter_tests (
509- & TestOpts { filter : Some ( "base::test" . into ( ) ) , filter_exact : true , ..TestOpts :: new ( ) } ,
516+ & TestOpts { filters : vec ! [ "base::test" . into( ) ] , filter_exact : true , ..TestOpts :: new ( ) } ,
510517 tests ( ) ,
511518 ) ;
512519 assert_eq ! ( exact. len( ) , 1 ) ;
520+
521+ let exact = filter_tests (
522+ & TestOpts {
523+ filters : vec ! [ "base" . into( ) , "base::test" . into( ) ] ,
524+ filter_exact : true ,
525+ ..TestOpts :: new ( )
526+ } ,
527+ tests ( ) ,
528+ ) ;
529+ assert_eq ! ( exact. len( ) , 2 ) ;
513530}
514531
515532#[ test]
0 commit comments