Mercurial > vim
comparison src/testdir/test_timers.vim @ 9933:7f38e72a9d65 v7.4.2240
commit https://github.com/vim/vim/commit/f267f8bdf777073e392ada5b31d837c7b6090eb4
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Aug 22 21:40:29 2016 +0200
patch 7.4.2240
Problem: Tests using the sleep time can be flaky.
Solution: Use reltime() if available. (Partly by Shane Harper)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Mon, 22 Aug 2016 21:45:06 +0200 |
parents | 3ee84d270ea7 |
children | 9772b04372f4 |
comparison
equal
deleted
inserted
replaced
9932:1aabb9543319 | 9933:7f38e72a9d65 |
---|---|
17 func Test_oneshot() | 17 func Test_oneshot() |
18 let g:val = 0 | 18 let g:val = 0 |
19 let timer = timer_start(50, 'MyHandler') | 19 let timer = timer_start(50, 'MyHandler') |
20 let slept = WaitFor('g:val == 1') | 20 let slept = WaitFor('g:val == 1') |
21 call assert_equal(1, g:val) | 21 call assert_equal(1, g:val) |
22 call assert_inrange(30, 100, slept) | 22 if has('reltime') |
23 call assert_inrange(50, 100, slept) | |
24 else | |
25 call assert_inrange(20, 100, slept) | |
26 endif | |
23 endfunc | 27 endfunc |
24 | 28 |
25 func Test_repeat_three() | 29 func Test_repeat_three() |
26 let g:val = 0 | 30 let g:val = 0 |
27 let timer = timer_start(50, 'MyHandler', {'repeat': 3}) | 31 let timer = timer_start(50, 'MyHandler', {'repeat': 3}) |
28 let slept = WaitFor('g:val == 3') | 32 let slept = WaitFor('g:val == 3') |
29 call assert_equal(3, g:val) | 33 call assert_equal(3, g:val) |
30 call assert_inrange(80, 200, slept) | 34 if has('reltime') |
35 call assert_inrange(150, 200, slept) | |
36 else | |
37 call assert_inrange(80, 200, slept) | |
38 endif | |
31 endfunc | 39 endfunc |
32 | 40 |
33 func Test_repeat_many() | 41 func Test_repeat_many() |
34 let g:val = 0 | 42 let g:val = 0 |
35 let timer = timer_start(50, 'MyHandler', {'repeat': -1}) | 43 let timer = timer_start(50, 'MyHandler', {'repeat': -1}) |
46 endfunction | 54 endfunction |
47 | 55 |
48 call timer_start(50, s:meow.bite) | 56 call timer_start(50, s:meow.bite) |
49 let slept = WaitFor('g:val == 1') | 57 let slept = WaitFor('g:val == 1') |
50 call assert_equal(1, g:val) | 58 call assert_equal(1, g:val) |
51 call assert_inrange(30, 100, slept) | 59 if has('reltime') |
60 call assert_inrange(50, 100, slept) | |
61 else | |
62 call assert_inrange(20, 100, slept) | |
63 endif | |
52 endfunc | 64 endfunc |
53 | 65 |
54 func Test_retain_partial() | 66 func Test_retain_partial() |
55 call timer_start(50, function('MyHandlerWithLists', [['a']])) | 67 call timer_start(50, function('MyHandlerWithLists', [['a']])) |
56 call test_garbagecollect_now() | 68 call test_garbagecollect_now() |
107 let info = timer_info(id) | 119 let info = timer_info(id) |
108 call assert_equal(0, info[0]['paused']) | 120 call assert_equal(0, info[0]['paused']) |
109 | 121 |
110 let slept = WaitFor('g:val == 1') | 122 let slept = WaitFor('g:val == 1') |
111 call assert_equal(1, g:val) | 123 call assert_equal(1, g:val) |
112 call assert_inrange(0, 10, slept) | 124 if has('reltime') |
125 call assert_inrange(0, 30, slept) | |
126 else | |
127 call assert_inrange(0, 10, slept) | |
128 endif | |
113 endfunc | 129 endfunc |
114 | 130 |
115 " vim: shiftwidth=2 sts=2 expandtab | 131 " vim: shiftwidth=2 sts=2 expandtab |