blob: 0969377c87b97524bde24e1cdb0cf218cad0bef2 [file] [log] [blame]
Bram Moolenaar975b5272016-03-15 23:10:59 +01001" Test for timers
2
3if !has('timers')
4 finish
5endif
6
7func MyHandler(timer)
8 let s:val += 1
9endfunc
10
Bram Moolenaare3188e22016-05-31 21:13:04 +020011func MyHandlerWithLists(lists, timer)
12 let x = string(a:lists)
13endfunc
14
Bram Moolenaar975b5272016-03-15 23:10:59 +010015func 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
Bram Moolenaar92e35ef2016-03-26 18:20:41 +010037
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
Bram Moolenaare3188e22016-05-31 21:13:04 +020049
50func Test_retain_partial()
51 call timer_start(100, function('MyHandlerWithLists', [['a']]))
52 call test_garbagecollect_now()
53 sleep 200m
54endfunc
Bram Moolenaar92e35ef2016-03-26 18:20:41 +010055" vim: ts=2 sw=0 et