@@ -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,60 @@ 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 =
476+ filter_tests ( & TestOpts { filters : vec ! [ "bas" . into( ) ] , ..TestOpts :: new ( ) } , tests ( ) ) ;
476477 assert_eq ! ( substr. len( ) , 4 ) ;
477478
478479 let substr =
479- filter_tests ( & TestOpts { filter : Some ( "::test" . into ( ) ) , ..TestOpts :: new ( ) } , tests ( ) ) ;
480+ filter_tests ( & TestOpts { filters : vec ! [ "::test" . into( ) ] , ..TestOpts :: new ( ) } , tests ( ) ) ;
480481 assert_eq ! ( substr. len( ) , 3 ) ;
481482
482483 let substr =
483- filter_tests ( & TestOpts { filter : Some ( "base::test" . into ( ) ) , ..TestOpts :: new ( ) } , tests ( ) ) ;
484+ filter_tests ( & TestOpts { filters : vec ! [ "base::test" . into( ) ] , ..TestOpts :: new ( ) } , tests ( ) ) ;
484485 assert_eq ! ( substr. len( ) , 3 ) ;
485486
487+ let substr = filter_tests (
488+ & TestOpts { filters : vec ! [ "test1" . into( ) , "test2" . into( ) ] , ..TestOpts :: new ( ) } ,
489+ tests ( ) ,
490+ ) ;
491+ assert_eq ! ( substr. len( ) , 2 ) ;
492+
486493 let exact = filter_tests (
487- & TestOpts { filter : Some ( "base" . into ( ) ) , filter_exact : true , ..TestOpts :: new ( ) } ,
494+ & TestOpts { filters : vec ! [ "base" . into( ) ] , filter_exact : true , ..TestOpts :: new ( ) } ,
488495 tests ( ) ,
489496 ) ;
490497 assert_eq ! ( exact. len( ) , 1 ) ;
491498
492499 let exact = filter_tests (
493- & TestOpts { filter : Some ( "bas" . into ( ) ) , filter_exact : true , ..TestOpts :: new ( ) } ,
500+ & TestOpts { filters : vec ! [ "bas" . into( ) ] , filter_exact : true , ..TestOpts :: new ( ) } ,
494501 tests ( ) ,
495502 ) ;
496503 assert_eq ! ( exact. len( ) , 0 ) ;
497504
498505 let exact = filter_tests (
499- & TestOpts { filter : Some ( "::test" . into ( ) ) , filter_exact : true , ..TestOpts :: new ( ) } ,
506+ & TestOpts { filters : vec ! [ "::test" . into( ) ] , filter_exact : true , ..TestOpts :: new ( ) } ,
500507 tests ( ) ,
501508 ) ;
502509 assert_eq ! ( exact. len( ) , 0 ) ;
503510
504511 let exact = filter_tests (
505- & TestOpts { filter : Some ( "base::test" . into ( ) ) , filter_exact : true , ..TestOpts :: new ( ) } ,
512+ & TestOpts { filters : vec ! [ "base::test" . into( ) ] , filter_exact : true , ..TestOpts :: new ( ) } ,
506513 tests ( ) ,
507514 ) ;
508515 assert_eq ! ( exact. len( ) , 1 ) ;
516+
517+ let exact = filter_tests (
518+ & TestOpts {
519+ filters : vec ! [ "base" . into( ) , "base::test" . into( ) ] ,
520+ filter_exact : true ,
521+ ..TestOpts :: new ( )
522+ } ,
523+ tests ( ) ,
524+ ) ;
525+ assert_eq ! ( exact. len( ) , 2 ) ;
509526}
510527
511528#[ test]
0 commit comments