1" Test for timers 2 3if !has('timers') 4 finish 5endif 6 7func MyHandler(timer) 8 let s:val += 1 9endfunc 10 11func MyHandlerWithLists(lists, timer) 12 let x = string(a:lists) 13endfunc 14 15func Test_oneshot() 16 let s:val = 0 17 let timer = timer_start(50, 'MyHandler') 18 sleep 200m 19 call assert_equal(1, s:val) 20endfunc 21 22func Test_repeat_three() 23 let s:val = 0 24 let timer = timer_start(50, 'MyHandler', {'repeat': 3}) 25 sleep 500m 26 call assert_equal(3, s:val) 27endfunc 28 29func Test_repeat_many() 30 let s:val = 0 31 let timer = timer_start(50, 'MyHandler', {'repeat': -1}) 32 sleep 200m 33 call timer_stop(timer) 34 call assert_true(s:val > 1) 35 call assert_true(s:val < 5) 36endfunc 37 38func Test_with_partial_callback() 39 let s:val = 0 40 let s:meow = {} 41 function s:meow.bite(...) 42 let s:val += 1 43 endfunction 44 45 call timer_start(50, s:meow.bite) 46 sleep 200m 47 call assert_equal(1, s:val) 48endfunc 49 50func Test_retain_partial() 51 call timer_start(100, function('MyHandlerWithLists', [['a']])) 52 call test_garbagecollect_now() 53 sleep 200m 54endfunc 55" vim: ts=2 sw=0 et 56