aboutsummaryrefslogtreecommitdiff
path: root/test/functional/ex_cmds
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/ex_cmds')
-rw-r--r--test/functional/ex_cmds/debug_spec.lua110
-rw-r--r--test/functional/ex_cmds/write_spec.lua20
-rw-r--r--test/functional/ex_cmds/wviminfo_spec.lua18
3 files changed, 131 insertions, 17 deletions
diff --git a/test/functional/ex_cmds/debug_spec.lua b/test/functional/ex_cmds/debug_spec.lua
new file mode 100644
index 0000000000..5dad8098ea
--- /dev/null
+++ b/test/functional/ex_cmds/debug_spec.lua
@@ -0,0 +1,110 @@
+local helpers = require('test.functional.helpers')(after_each)
+local Screen = require('test.functional.ui.screen')
+local feed = helpers.feed
+local clear = helpers.clear
+
+describe(':debug', function()
+ local screen
+ before_each(function()
+ clear()
+ screen = Screen.new(50, 14)
+ screen:set_default_attr_ids({
+ [1] = {bold = true, foreground = Screen.colors.Blue1},
+ [2] = {bold = true, reverse = true},
+ [3] = {foreground = Screen.colors.Grey100, background = Screen.colors.Red},
+ [4] = {bold = true, foreground = Screen.colors.SeaGreen4},
+ })
+ screen:attach()
+ end)
+ it('scrolls messages correctly', function()
+ feed(':echoerr bork<cr>')
+ screen:expect([[
+ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {2: }|
+ {3:E121: Undefined variable: bork} |
+ {3:E15: Invalid expression: bork} |
+ {4:Press ENTER or type command to continue}^ |
+ ]])
+
+ feed(':debug echo "aa"| echo "bb"<cr>')
+ screen:expect([[
+ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {2: }|
+ {3:E121: Undefined variable: bork} |
+ {3:E15: Invalid expression: bork} |
+ Entering Debug mode. Type "cont" to continue. |
+ cmd: echo "aa"| echo "bb" |
+ >^ |
+ ]])
+
+ feed('step<cr>')
+ screen:expect([[
+ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {2: }|
+ {3:E121: Undefined variable: bork} |
+ {3:E15: Invalid expression: bork} |
+ Entering Debug mode. Type "cont" to continue. |
+ cmd: echo "aa"| echo "bb" |
+ >step |
+ aa |
+ cmd: echo "bb" |
+ >^ |
+ ]])
+
+ feed('step<cr>')
+ screen:expect([[
+ |
+ {1:~ }|
+ {1:~ }|
+ {2: }|
+ {3:E121: Undefined variable: bork} |
+ {3:E15: Invalid expression: bork} |
+ Entering Debug mode. Type "cont" to continue. |
+ cmd: echo "aa"| echo "bb" |
+ >step |
+ aa |
+ cmd: echo "bb" |
+ >step |
+ bb |
+ {4:Press ENTER or type command to continue}^ |
+ ]])
+
+ feed('<cr>')
+ screen:expect([[
+ ^ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ |
+ ]])
+ end)
+end)
diff --git a/test/functional/ex_cmds/write_spec.lua b/test/functional/ex_cmds/write_spec.lua
index bcf83698bb..3f54ff6f41 100644
--- a/test/functional/ex_cmds/write_spec.lua
+++ b/test/functional/ex_cmds/write_spec.lua
@@ -9,6 +9,7 @@ local command = helpers.command
local feed_command = helpers.feed_command
local funcs = helpers.funcs
local meths = helpers.meths
+local iswin = helpers.iswin
local fname = 'Xtest-functional-ex_cmds-write'
local fname_bak = fname .. '~'
@@ -34,11 +35,14 @@ describe(':write', function()
it('&backupcopy=auto preserves symlinks', function()
command('set backupcopy=auto')
write_file('test_bkc_file.txt', 'content0')
- if helpers.iswin() then
+ if iswin() then
command("silent !mklink test_bkc_link.txt test_bkc_file.txt")
else
command("silent !ln -s test_bkc_file.txt test_bkc_link.txt")
end
+ if eval('v:shell_error') ~= 0 then
+ pending('Cannot create symlink', function()end)
+ end
source([[
edit test_bkc_link.txt
call setline(1, ['content1'])
@@ -51,11 +55,14 @@ describe(':write', function()
it('&backupcopy=no replaces symlink with new file', function()
command('set backupcopy=no')
write_file('test_bkc_file.txt', 'content0')
- if helpers.iswin() then
+ if iswin() then
command("silent !mklink test_bkc_link.txt test_bkc_file.txt")
else
command("silent !ln -s test_bkc_file.txt test_bkc_link.txt")
end
+ if eval('v:shell_error') ~= 0 then
+ pending('Cannot create symlink', function()end)
+ end
source([[
edit test_bkc_link.txt
call setline(1, ['content1'])
@@ -66,7 +73,8 @@ describe(':write', function()
end)
it("appends FIFO file", function()
- if eval("executable('mkfifo')") == 0 then
+ -- mkfifo creates read-only .lnk files on Windows
+ if iswin() or eval("executable('mkfifo')") == 0 then
pending('missing "mkfifo" command', function()end)
return
end
@@ -88,7 +96,7 @@ describe(':write', function()
command('let $HOME=""')
eq(funcs.fnamemodify('.', ':p:h'), funcs.fnamemodify('.', ':p:h:~'))
-- Message from check_overwrite
- if not helpers.iswin() then
+ if not iswin() then
eq(('\nE17: "'..funcs.fnamemodify('.', ':p:h')..'" is a directory'),
redir_exec('write .'))
end
@@ -108,7 +116,7 @@ describe(':write', function()
funcs.setfperm(fname, 'r--------')
eq('Vim(write):E505: "Xtest-functional-ex_cmds-write" is read-only (add ! to override)',
exc_exec('write'))
- if helpers.iswin() then
+ if iswin() then
eq(0, os.execute('del /q/f ' .. fname))
eq(0, os.execute('rd /q/s ' .. fname_bak))
else
@@ -117,7 +125,7 @@ describe(':write', function()
end
write_file(fname_bak, 'TTYX')
-- FIXME: exc_exec('write!') outputs 0 in Windows
- if helpers.iswin() then return end
+ if iswin() then return end
lfs.link(fname_bak .. ('/xxxxx'):rep(20), fname, true)
eq('Vim(write):E166: Can\'t open linked file for writing',
exc_exec('write!'))
diff --git a/test/functional/ex_cmds/wviminfo_spec.lua b/test/functional/ex_cmds/wviminfo_spec.lua
index eebbd70f2b..df0b9df5dd 100644
--- a/test/functional/ex_cmds/wviminfo_spec.lua
+++ b/test/functional/ex_cmds/wviminfo_spec.lua
@@ -3,21 +3,21 @@ local lfs = require('lfs')
local command, eq, neq, spawn, nvim_prog, set_session, write_file =
helpers.command, helpers.eq, helpers.neq, helpers.spawn,
helpers.nvim_prog, helpers.set_session, helpers.write_file
+local iswin = helpers.iswin
+local read_file = helpers.read_file
describe(':wshada', function()
local shada_file = 'wshada_test'
local session
before_each(function()
- if session then
- session:close()
- end
-
-- Override the default session because we need 'swapfile' for these tests.
- session = spawn({nvim_prog, '-u', 'NONE', '-i', '/dev/null', '--embed',
+ session = spawn({nvim_prog, '-u', 'NONE', '-i', iswin() and 'nul' or '/dev/null', '--embed',
'--cmd', 'set swapfile'})
set_session(session)
-
+ end)
+ after_each(function ()
+ session:close()
os.remove(shada_file)
end)
@@ -36,7 +36,7 @@ describe(':wshada', function()
write_file(shada_file, text)
-- sanity check
- eq(text, io.open(shada_file):read())
+ eq(text, read_file(shada_file))
neq(nil, lfs.attributes(shada_file))
command('wsh! '..shada_file)
@@ -49,8 +49,4 @@ describe(':wshada', function()
assert(char1:byte() == 0x01,
shada_file..' should be a shada file')
end)
-
- teardown(function()
- os.remove(shada_file)
- end)
end)