@@ -829,15 +829,16 @@ void main() {
829
829
log.clear ();
830
830
831
831
async .flushMicrotasks ();
832
- expect (log, ['run0' , '#1()' ]);
832
+ // Some zone implementations may introduce extra `run` calls.
833
+ expect (log.tail (2 ), ['run0' , '#1()' ]);
833
834
log.clear ();
834
835
835
836
async .elapse (elapseBy);
836
- expect (log, ['run0' , '#2()' ]);
837
+ expect (log. tail ( 2 ) , ['run0' , '#2()' ]);
837
838
log.clear ();
838
839
839
840
async .elapse (elapseBy);
840
- expect (log, ['run1' , '#3(_)' ]);
841
+ expect (log. tail ( 2 ) , ['run1' , '#3(_)' ]);
841
842
842
843
zone.run (() {
843
844
log.clear ();
@@ -852,15 +853,15 @@ void main() {
852
853
log.clear ();
853
854
854
855
async .flushMicrotasks ();
855
- expect (log, ['run0' , '#4()' , 'ERR(microtask error)' ]);
856
+ expect (log. tail ( 3 ) , ['run0' , '#4()' , 'ERR(microtask error)' ]);
856
857
log.clear ();
857
858
858
859
async .elapse (elapseBy);
859
- expect (log, ['run0' , '#5()' , 'ERR(timer error)' ]);
860
+ expect (log. tail ( 3 ) , ['run0' , '#5()' , 'ERR(timer error)' ]);
860
861
log.clear ();
861
862
862
863
async .elapse (elapseBy);
863
- expect (log, ['run1' , '#3(_)' , 'ERR(periodic timer error)' ]);
864
+ expect (log. tail ( 3 ) , ['run1' , '#3(_)' , 'ERR(periodic timer error)' ]);
864
865
log.clear ();
865
866
});
866
867
});
@@ -872,3 +873,7 @@ Matcher _closeToTime(DateTime expected) => predicate(
872
873
(actual) =>
873
874
expected.difference (actual as DateTime ).inMilliseconds.abs () < 100 ,
874
875
'is close to $expected ' );
876
+
877
+ extension < T > on List <T > {
878
+ List <T > tail (int count) => sublist (length - count);
879
+ }
0 commit comments