diff options
-rw-r--r-- | test/functional/helpers.lua | 9 | ||||
-rw-r--r-- | test/functional/terminal/ex_terminal_spec.lua | 6 | ||||
-rw-r--r-- | test/functional/ui/inccommand_spec.lua | 48 | ||||
-rw-r--r-- | test/functional/ui/wildmode_spec.lua | 18 |
4 files changed, 19 insertions, 62 deletions
diff --git a/test/functional/helpers.lua b/test/functional/helpers.lua index 2f76f24d84..73f3c4c917 100644 --- a/test/functional/helpers.lua +++ b/test/functional/helpers.lua @@ -302,6 +302,10 @@ end local function nvim_feed(input) while #input > 0 do local written = module.request('nvim_input', input) + if written == nil then + module.assert_alive() + error('nvim_input returned nil (Nvim process terminated?)') + end input = input:sub(written + 1) end end @@ -586,6 +590,11 @@ function module.expect_any(contents) return ok(nil ~= string.find(module.curbuf_contents(), contents, 1, true)) end +-- Checks that the Nvim session did not terminate. +function module.assert_alive() + eq(2, module.eval('1+1')) +end + local function do_rmdir(path) if lfs.attributes(path, 'mode') ~= 'directory' then return -- Don't complain. diff --git a/test/functional/terminal/ex_terminal_spec.lua b/test/functional/terminal/ex_terminal_spec.lua index 591e6340cf..b0019d2d37 100644 --- a/test/functional/terminal/ex_terminal_spec.lua +++ b/test/functional/terminal/ex_terminal_spec.lua @@ -27,11 +27,7 @@ describe(':terminal', function() echomsg "msg3" ]]) -- Invoke a command that emits frequent terminal activity. - if iswin() then - feed_command([[terminal for /L \%I in (1,0,2) do echo \%I]]) - else - feed_command([[terminal while true; do echo X; done]]) - end + feed([[:terminal "]]..nvim_dir..[[/shell-test" REP 9999 !terminal_output!<cr>]]) feed([[<C-\><C-N>]]) wait() -- Wait for some terminal activity. diff --git a/test/functional/ui/inccommand_spec.lua b/test/functional/ui/inccommand_spec.lua index 238cc368da..351c4b4bcf 100644 --- a/test/functional/ui/inccommand_spec.lua +++ b/test/functional/ui/inccommand_spec.lua @@ -16,8 +16,8 @@ local retry = helpers.retry local source = helpers.source local wait = helpers.wait local nvim = helpers.nvim -local iswin = helpers.iswin local sleep = helpers.sleep +local nvim_dir = helpers.nvim_dir local default_text = [[ Inc substitution on @@ -2555,56 +2555,18 @@ it(':substitute with inccommand during :terminal activity', function() clear() command("set cmdwinheight=3") - if iswin() then - feed([[:terminal for /L \%I in (1,1,5000) do @(echo xxx & echo xxx & echo xxx)<cr>]]) - else - feed([[:terminal for i in $(seq 1 5000); do printf 'xxx\nxxx\nxxx\n'; done<cr>]]) - end + feed([[:terminal "]]..nvim_dir..[[/shell-test" REP 5000 xxx<cr>]]) command('file term') + feed('G') -- Follow :terminal output. command('new') common_setup(screen, 'split', 'foo bar baz\nbar baz fox\nbar foo baz') command('wincmd =') - -- Wait for terminal output. - screen:expect([[ - bar baz fox | - bar foo ba^z | - {15:~ }| - {15:~ }| - {15:~ }| - {15:~ }| - {11:[No Name] [+] }| - xxx | - xxx | - xxx | - xxx | - xxx | - xxx | - {10:term }| - | - ]]) - feed('gg') feed(':%s/foo/ZZZ') sleep(20) -- Allow some terminal activity. - screen:expect([[ - {12:ZZZ} bar baz | - bar baz fox | - bar {12:ZZZ} baz | - {15:~ }| - {15:~ }| - {15:~ }| - {11:[No Name] [+] }| - xxx | - xxx | - {10:term }| - |1| {12:ZZZ} bar baz | - |3| bar {12:ZZZ} baz | - {15:~ }| - {10:[Preview] }| - :%s/foo/ZZZ^ | - ]]) - + helpers.wait() + screen:expect_unchanged() end) end) diff --git a/test/functional/ui/wildmode_spec.lua b/test/functional/ui/wildmode_spec.lua index 914256224f..738466ae2b 100644 --- a/test/functional/ui/wildmode_spec.lua +++ b/test/functional/ui/wildmode_spec.lua @@ -7,6 +7,7 @@ local funcs = helpers.funcs local eq = helpers.eq local eval = helpers.eval local retry = helpers.retry +local nvim_dir = helpers.nvim_dir describe("'wildmenu'", function() local screen @@ -83,13 +84,8 @@ describe("'wildmenu'", function() it('is preserved during :terminal activity', function() command('set wildmenu wildmode=full') command('set scrollback=4') - if iswin() then - feed([[:terminal for /L \%I in (1,1,5000) do @(echo foo & echo foo & echo foo)<cr>]]) - else - feed([[:terminal for i in $(seq 1 5000); do printf 'foo\nfoo\nfoo\n'; sleep 0.1; done<cr>]]) - end - - feed([[<C-\><C-N>gg]]) + feed([[:terminal "]]..nvim_dir..[[/shell-test" REP 5000 !terminal_output!<cr>]]) + feed('G') -- Follow :terminal output. feed([[:sign <Tab>]]) -- Invoke wildmenu. -- NB: in earlier versions terminal output was redrawn during cmdline mode. -- For now just assert that the screen remains unchanged. @@ -114,13 +110,7 @@ describe("'wildmenu'", function() -- Exiting cmdline should show the buffer. feed([[<C-\><C-N>]]) - screen:expect([[ - ^foo | - foo | - foo | - foo | - | - ]]) + screen:expect{any=[[!terminal_output!]]} end) it('ignores :redrawstatus called from a timer #7108', function() |