2016-04-21 08:06:03 -07:00
|
|
|
" Test for timers
|
|
|
|
|
|
|
|
if !has('timers')
|
|
|
|
finish
|
|
|
|
endif
|
|
|
|
|
|
|
|
func MyHandler(timer)
|
|
|
|
let s:val += 1
|
|
|
|
endfunc
|
|
|
|
|
2016-11-02 22:11:25 -07:00
|
|
|
func MyHandlerWithLists(lists, timer)
|
|
|
|
let x = string(a:lists)
|
|
|
|
endfunc
|
|
|
|
|
2016-04-21 08:06:03 -07:00
|
|
|
func Test_oneshot()
|
|
|
|
let s:val = 0
|
|
|
|
let timer = timer_start(50, 'MyHandler')
|
|
|
|
sleep 200m
|
|
|
|
call assert_equal(1, s:val)
|
|
|
|
endfunc
|
|
|
|
|
|
|
|
func Test_repeat_three()
|
|
|
|
let s:val = 0
|
|
|
|
let timer = timer_start(50, 'MyHandler', {'repeat': 3})
|
|
|
|
sleep 500m
|
|
|
|
call assert_equal(3, s:val)
|
|
|
|
endfunc
|
|
|
|
|
|
|
|
func Test_repeat_many()
|
|
|
|
let s:val = 0
|
|
|
|
let timer = timer_start(50, 'MyHandler', {'repeat': -1})
|
|
|
|
sleep 200m
|
|
|
|
call timer_stop(timer)
|
|
|
|
call assert_true(s:val > 1)
|
|
|
|
call assert_true(s:val < 5)
|
|
|
|
endfunc
|
2016-10-30 15:10:11 -07:00
|
|
|
|
2016-11-02 22:11:25 -07:00
|
|
|
func Test_with_partial_callback()
|
|
|
|
let s:val = 0
|
|
|
|
let s:meow = {}
|
|
|
|
function s:meow.bite(...)
|
|
|
|
let s:val += 1
|
|
|
|
endfunction
|
2016-11-01 02:54:32 -07:00
|
|
|
|
2016-11-02 22:11:25 -07:00
|
|
|
call timer_start(50, s:meow.bite)
|
|
|
|
sleep 200m
|
|
|
|
call assert_equal(1, s:val)
|
|
|
|
endfunc
|
|
|
|
|
|
|
|
func Test_retain_partial()
|
|
|
|
call timer_start(100, function('MyHandlerWithLists', [['a']]))
|
|
|
|
call garbagecollect()
|
|
|
|
sleep 200m
|
|
|
|
endfunc
|
2017-03-14 01:58:13 -07:00
|
|
|
|
|
|
|
" vim: shiftwidth=2 sts=2 expandtab
|