mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
test: Prevent waiting for already current state.
Some of the UI tests screen:expect() the same screen state twice in a row. This ends up waiting the entire timeout period for a screen redraw event that never happens. So check at the start of screen:wait() that the screen is not already in the desired end state. This shaves a third off the total run-time of the functional tests on FreeBSD. Some of the tests that look for the same state twice are mouse_spec tests, which have their timeouts raised to a quarter of a minute for each screen:expect() in the test.
This commit is contained in:
parent
2c236fc67b
commit
18e7cd9e97
@ -259,7 +259,8 @@ screen:redraw_debug() to show all intermediate screen states. ]])
|
||||
end
|
||||
|
||||
function Screen:wait(check, timeout)
|
||||
local err, checked = false
|
||||
local err = check()
|
||||
local checked = false
|
||||
local success_seen = false
|
||||
local failure_after_success = false
|
||||
local function notification_cb(method, args)
|
||||
@ -277,7 +278,9 @@ function Screen:wait(check, timeout)
|
||||
|
||||
return true
|
||||
end
|
||||
run(nil, notification_cb, nil, timeout or self.timeout)
|
||||
if err then
|
||||
run(nil, notification_cb, nil, timeout or self.timeout)
|
||||
end
|
||||
if not checked then
|
||||
err = check()
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user