@@ -136,17 +136,20 @@ struct State {
136
136
/// Include ignored tests.
137
137
include_ignored : Cell < bool > ,
138
138
139
+ /// Include ignored tests.
140
+ ignored : Cell < bool > ,
141
+
139
142
/// Tests to skip.
140
143
skip : RefCell < Vec < String > > ,
141
144
142
145
/// Counter of the number of tests that have succeeded.
143
- succeeded : Cell < usize > ,
146
+ succeeded_count : Cell < usize > ,
144
147
145
148
/// Counter of the number of tests that have been filtered
146
- filtered : Cell < usize > ,
149
+ filtered_count : Cell < usize > ,
147
150
148
151
/// Counter of the number of tests that have been ignored
149
- ignored : Cell < usize > ,
152
+ ignored_count : Cell < usize > ,
150
153
151
154
/// A list of all tests which have failed.
152
155
///
@@ -349,13 +352,14 @@ impl Context {
349
352
state : Rc :: new ( State {
350
353
filter : Default :: default ( ) ,
351
354
include_ignored : Default :: default ( ) ,
355
+ ignored : Default :: default ( ) ,
352
356
skip : Default :: default ( ) ,
353
357
failures : Default :: default ( ) ,
354
- filtered : Default :: default ( ) ,
355
- ignored : Default :: default ( ) ,
358
+ filtered_count : Default :: default ( ) ,
359
+ ignored_count : Default :: default ( ) ,
356
360
remaining : Default :: default ( ) ,
357
361
running : Default :: default ( ) ,
358
- succeeded : Default :: default ( ) ,
362
+ succeeded_count : Default :: default ( ) ,
359
363
formatter,
360
364
timer,
361
365
} ) ,
@@ -367,6 +371,11 @@ impl Context {
367
371
self . state . include_ignored . set ( include_ignored) ;
368
372
}
369
373
374
+ /// Handle `--ignored` flag.
375
+ pub fn ignored ( & mut self , ignored : bool ) {
376
+ self . state . ignored . set ( ignored) ;
377
+ }
378
+
370
379
/// Handle `--skip` arguments.
371
380
pub fn skip ( & mut self , skip : Vec < String > ) {
372
381
* self . state . skip . borrow_mut ( ) = skip;
@@ -547,27 +556,33 @@ impl Context {
547
556
let filter = self . state . filter . borrow ( ) ;
548
557
if let Some ( filter) = & * filter {
549
558
if !name. contains ( filter) {
550
- let filtered = self . state . filtered . get ( ) ;
551
- self . state . filtered . set ( filtered + 1 ) ;
559
+ let filtered = self . state . filtered_count . get ( ) ;
560
+ self . state . filtered_count . set ( filtered + 1 ) ;
552
561
return ;
553
562
}
554
563
}
555
564
556
565
for skip in & * self . state . skip . borrow ( ) {
557
566
if name. contains ( skip) {
558
- let filtered = self . state . filtered . get ( ) ;
559
- self . state . filtered . set ( filtered + 1 ) ;
567
+ let filtered = self . state . filtered_count . get ( ) ;
568
+ self . state . filtered_count . set ( filtered + 1 ) ;
560
569
return ;
561
570
}
562
571
}
563
572
564
- if !self . state . include_ignored . get ( ) {
573
+ if self . state . ignored . get ( ) && ignore. is_none ( ) {
574
+ let filtered = self . state . filtered_count . get ( ) ;
575
+ self . state . filtered_count . set ( filtered + 1 ) ;
576
+ return ;
577
+ }
578
+
579
+ if !self . state . include_ignored . get ( ) && !self . state . ignored . get ( ) {
565
580
if let Some ( ignore) = ignore {
566
581
self . state
567
582
. formatter
568
583
. log_test ( name, & TestResult :: Ignored ( ignore. map ( str:: to_owned) ) ) ;
569
- let ignored = self . state . ignored . get ( ) ;
570
- self . state . ignored . set ( ignored + 1 ) ;
584
+ let ignored = self . state . ignored_count . get ( ) ;
585
+ self . state . ignored_count . set ( ignored + 1 ) ;
571
586
return ;
572
587
}
573
588
}
@@ -665,7 +680,7 @@ impl State {
665
680
}
666
681
667
682
self . formatter . log_test ( & test. name , & TestResult :: Ok ) ;
668
- self . succeeded . set ( self . succeeded . get ( ) + 1 ) ;
683
+ self . succeeded_count . set ( self . succeeded_count . get ( ) + 1 ) ;
669
684
} else {
670
685
self . formatter
671
686
. log_test ( & test. name , & TestResult :: Err ( JsValue :: NULL ) ) ;
@@ -677,7 +692,7 @@ impl State {
677
692
self . formatter . log_test ( & test. name , & result) ;
678
693
679
694
match result {
680
- TestResult :: Ok => self . succeeded . set ( self . succeeded . get ( ) + 1 ) ,
695
+ TestResult :: Ok => self . succeeded_count . set ( self . succeeded_count . get ( ) + 1 ) ,
681
696
TestResult :: Err ( e) => self . failures . borrow_mut ( ) . push ( ( test, Failure :: Error ( e) ) ) ,
682
697
_ => ( ) ,
683
698
}
@@ -710,10 +725,10 @@ impl State {
710
725
{} filtered out\
711
726
{}\n ",
712
727
if failures. len( ) == 0 { "ok" } else { "FAILED" } ,
713
- self . succeeded . get( ) ,
728
+ self . succeeded_count . get( ) ,
714
729
failures. len( ) ,
715
- self . ignored . get( ) ,
716
- self . filtered . get( ) ,
730
+ self . ignored_count . get( ) ,
731
+ self . filtered_count . get( ) ,
717
732
finished_in,
718
733
) ) ;
719
734
}
0 commit comments