let id1 = timer_start(1000, 'MyHandler')
let id2 = timer_start(2000, 'MyHandler')
let info = timer_info()
- call assert_equal(2, len(info))
+ " count one for the TestTimeout() timer
+ call assert_equal(3, len(info))
call timer_stopall()
let info = timer_info()
func Test_timer_stop_in_callback()
let g:test_is_flaky = 1
- call assert_equal(0, len(timer_info()))
+ call assert_equal(1, len(timer_info()))
let g:timer1 = timer_start(10, 'StopTimer1')
let slept = 0
for i in range(10)
- if len(timer_info()) == 0
+ if len(timer_info()) == 1
break
endif
sleep 10m
let slept += 10
endfor
- " This should take only 30 msec, but on Mac it's often longer
- call assert_inrange(0, 50, slept)
+ if slept == 100
+ call assert_equal(1, len(timer_info()))
+ else
+ " This should take only 30 msec, but on Mac it's often longer
+ call assert_inrange(0, 50, slept)
+ endif
endfunc
func StopTimerAll(timer)
func Test_timer_stop_all_in_callback()
let g:test_is_flaky = 1
- call assert_equal(0, len(timer_info()))
- call timer_start(10, 'StopTimerAll')
+ " One timer is for TestTimeout()
call assert_equal(1, len(timer_info()))
+ call timer_start(10, 'StopTimerAll')
+ call assert_equal(2, len(timer_info()))
let slept = 0
for i in range(10)
if len(timer_info()) == 0
sleep 10m
let slept += 10
endfor
- call assert_inrange(0, 30, slept)
+ if slept == 100
+ call assert_equal(0, len(timer_info()))
+ else
+ call assert_inrange(0, 30, slept)
+ endif
endfunc
func FeedkeysCb(timer)
" Test that the garbage collector isn't triggered if a timer callback invokes
" vgetc().
func Test_nocatch_timer_garbage_collect()
+ " FIXME: why does this fail only on MacOS M1?
+ CheckNotMacM1
+
" 'uptimetime. must be bigger than the timer timeout
set ut=200
call test_garbagecollect_soon()