From 41225fe4f69b507b020d7bf4033e02d3f4fbdd40 Mon Sep 17 00:00:00 2001 From: Thiago de Arruda Date: Fri, 23 Jan 2015 18:06:52 -0300 Subject: test: Fix hanging test suite after failures When a test that fails leaves nvim in a 'Press Enter...' state, the whole suite will hang because the `qa!` command executed before the next test won't be processed until '' is sent. Now the lua client can send a signal with when `Session:exit()` is called, so the `qa!` request is no longer necessary. Also: - Set noswapfile at startup to prevent tests from leaving .s* swap files(should also improve test environment determinism) - Use `assert(false, msg) instead of `error(msg)` to report screen assertion failures. --- test/functional/helpers.lua | 6 +++--- test/functional/ui/screen.lua | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'test') diff --git a/test/functional/helpers.lua b/test/functional/helpers.lua index c76979e894..ea98ff4ce3 100644 --- a/test/functional/helpers.lua +++ b/test/functional/helpers.lua @@ -6,7 +6,8 @@ local Session = require('nvim.session') local nvim_prog = os.getenv('NVIM_PROG') or 'build/bin/nvim' local nvim_argv = {nvim_prog, '-u', 'NONE', '-i', 'NONE', '-N', - '--cmd', 'set shortmess+=I background=light', '--embed'} + '--cmd', 'set shortmess+=I background=light noswapfile', + '--embed'} local prepend_argv if os.getenv('VALGRIND') then @@ -153,8 +154,7 @@ end local function clear() if session then - session:request('vim_command', 'qa!') - session:exit() + session:exit(0) end local loop = Loop.new() local msgpack_stream = MsgpackStream.new(loop) diff --git a/test/functional/ui/screen.lua b/test/functional/ui/screen.lua index 29bbe69d8b..3070412e4d 100644 --- a/test/functional/ui/screen.lua +++ b/test/functional/ui/screen.lua @@ -192,7 +192,7 @@ function Screen:wait(check, timeout) err = check() end if err then - error(err) + assert(false, err) end end -- cgit From cbc23d93b9f8dd8043836fa2d0ca36667a19a849 Mon Sep 17 00:00:00 2001 From: Thiago de Arruda Date: Fri, 23 Jan 2015 19:00:45 -0300 Subject: test: Make default screen timeout depend on the VALGRIND env var While running under valgrind, the screen can take significantly longer to update(especially on travis) so a higher timeout can be required. Also reduce the timeout when not running on valgrind. --- test/functional/ui/screen.lua | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'test') diff --git a/test/functional/ui/screen.lua b/test/functional/ui/screen.lua index 3070412e4d..ef99c2a536 100644 --- a/test/functional/ui/screen.lua +++ b/test/functional/ui/screen.lua @@ -85,6 +85,10 @@ Screen.__index = Screen local debug_screen +local default_screen_timeout = 2500 +if os.getenv('VALGRIND') then + default_screen_timeout = 7500 +end function Screen.debug(command) if not command then @@ -187,7 +191,7 @@ function Screen:wait(check, timeout) end return true end - run(nil, notification_cb, nil, timeout or 5000) + run(nil, notification_cb, nil, timeout or default_screen_timeout) if not checked then err = check() end -- cgit