test: adjust timer tests

Timer tests are less reliable on Travis CI macOS 10.12 (most egregious).
Also somewhat on 10.13.
This commit is contained in:
Justin M. Keyes 2018-10-08 08:56:13 +02:00
parent 0995f460fb
commit e39dade80b
2 changed files with 11 additions and 6 deletions

View File

@ -20,9 +20,9 @@ func Test_oneshot()
let slept = WaitFor('g:val == 1') let slept = WaitFor('g:val == 1')
call assert_equal(1, g:val) call assert_equal(1, g:val)
if has('reltime') if has('reltime')
call assert_inrange(40, 100, slept) call assert_inrange(40, 120, slept)
else else
call assert_inrange(20, 100, slept) call assert_inrange(20, 120, slept)
endif endif
endfunc endfunc
@ -39,6 +39,7 @@ func Test_repeat_three()
endfunc endfunc
func Test_repeat_many() func Test_repeat_many()
call timer_stopall()
let g:val = 0 let g:val = 0
let timer = timer_start(50, 'MyHandler', {'repeat': -1}) let timer = timer_start(50, 'MyHandler', {'repeat': -1})
sleep 200m sleep 200m
@ -89,6 +90,7 @@ func Test_info()
endfunc endfunc
func Test_stopall() func Test_stopall()
call timer_stopall()
let id1 = timer_start(1000, 'MyHandler') let id1 = timer_start(1000, 'MyHandler')
let id2 = timer_start(2000, 'MyHandler') let id2 = timer_start(2000, 'MyHandler')
let info = timer_info() let info = timer_info()
@ -161,6 +163,7 @@ func StopTimerAll(timer)
endfunc endfunc
func Test_stop_all_in_callback() func Test_stop_all_in_callback()
call timer_stopall()
let g:timer1 = timer_start(10, 'StopTimerAll') let g:timer1 = timer_start(10, 'StopTimerAll')
let info = timer_info() let info = timer_info()
call assert_equal(1, len(info)) call assert_equal(1, len(info))

View File

@ -1,6 +1,6 @@
local helpers = require('test.functional.helpers')(after_each) local helpers = require('test.functional.helpers')(after_each)
local Screen = require('test.functional.ui.screen') local Screen = require('test.functional.ui.screen')
local ok, feed, eq, eval = helpers.ok, helpers.feed, helpers.eq, helpers.eval local feed, eq, eval = helpers.feed, helpers.eq, helpers.eval
local source, nvim_async, run = helpers.source, helpers.nvim_async, helpers.run local source, nvim_async, run = helpers.source, helpers.nvim_async, helpers.run
local clear, command, funcs = helpers.clear, helpers.command, helpers.funcs local clear, command, funcs = helpers.clear, helpers.command, helpers.funcs
local curbufmeths = helpers.curbufmeths local curbufmeths = helpers.curbufmeths
@ -72,7 +72,8 @@ describe('timers', function()
run(nil, nil, nil, 300) run(nil, nil, nil, 300)
feed("<cr>") feed("<cr>")
local diff = eval("g:val") - count local diff = eval("g:val") - count
ok(0 <= diff and diff <= 4) assert(0 <= diff and diff <= 4,
'expected (0 <= diff <= 4), got: '..tostring(diff))
end) end)
it('are triggered in blocking getchar() call', function() it('are triggered in blocking getchar() call', function()
@ -81,7 +82,7 @@ describe('timers', function()
run(nil, nil, nil, 300) run(nil, nil, nil, 300)
feed("c") feed("c")
local count = eval("g:val") local count = eval("g:val")
ok(count >= 4) assert(count >= 4, 'expected count >= 4, got: '..tostring(count))
eq(99, eval("g:c")) eq(99, eval("g:c"))
end) end)
@ -142,9 +143,10 @@ describe('timers', function()
local count = eval("g:val") local count = eval("g:val")
run(nil, nil, nil, 300) run(nil, nil, nil, 300)
local count2 = eval("g:val") local count2 = eval("g:val")
ok(4 <= count and count <= 7)
-- when count is eval:ed after timer_stop this should be non-racy -- when count is eval:ed after timer_stop this should be non-racy
eq(count, count2) eq(count, count2)
assert(4 <= count and count <= 7,
'expected (4 <= count <= 7), got: '..tostring(count))
end) end)
it('can be stopped from the handler', function() it('can be stopped from the handler', function()