aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2019-09-01 11:13:29 -0700
committerGitHub <noreply@github.com>2019-09-01 11:13:29 -0700
commit2f37c243482eec20fe52f298368c02eca21c758f (patch)
treee58f19e64682ee8de1de7c514025adc9e747ef4c
parent78a2bbaa4b0ee6b0e575c4239b7b35eb42852910 (diff)
parent2c1749ce443c3bb15a719c947b186301bc8ef0b3 (diff)
downloadrneovim-2f37c243482eec20fe52f298368c02eca21c758f.tar.gz
rneovim-2f37c243482eec20fe52f298368c02eca21c758f.tar.bz2
rneovim-2f37c243482eec20fe52f298368c02eca21c758f.zip
Merge #10733 from justinmk/test-fixes
test: use shell-test (avoid system shell)
-rw-r--r--test/functional/helpers.lua9
-rw-r--r--test/functional/terminal/ex_terminal_spec.lua6
-rw-r--r--test/functional/ui/inccommand_spec.lua48
-rw-r--r--test/functional/ui/wildmode_spec.lua18
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()