diff options
Diffstat (limited to 'test/functional/ex_cmds')
-rw-r--r-- | test/functional/ex_cmds/debug_spec.lua | 110 | ||||
-rw-r--r-- | test/functional/ex_cmds/write_spec.lua | 20 | ||||
-rw-r--r-- | test/functional/ex_cmds/wviminfo_spec.lua | 18 |
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) |