diff options
author | Daniel Hahler <git@thequod.de> | 2019-06-08 15:57:49 +0200 |
---|---|---|
committer | Daniel Hahler <git@thequod.de> | 2019-06-10 18:10:15 +0200 |
commit | 76506ca0a30832b62479fb3c2227b0f693c4038c (patch) | |
tree | fac74ec5d28971e4da87dc4369fdf2a79eb373e8 /src | |
parent | 6fe430f582f2297ca190d04639a885c789b532ae (diff) | |
download | rneovim-76506ca0a30832b62479fb3c2227b0f693c4038c.tar.gz rneovim-76506ca0a30832b62479fb3c2227b0f693c4038c.tar.bz2 rneovim-76506ca0a30832b62479fb3c2227b0f693c4038c.zip |
vim-patch:8.1.1292: invalid command line arguments not tested
Problem: Invalid command line arguments not tested.
Solution: Add a test. (Dominique Pelle, closes vim/vim#4346)
https://github.com/vim/vim/commit/ba9ea91beb8f687b0f61b28319c1dbdced2f46ca
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/testdir/test_startup.vim | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/src/nvim/testdir/test_startup.vim b/src/nvim/testdir/test_startup.vim index 873f2e8731..9018681137 100644 --- a/src/nvim/testdir/test_startup.vim +++ b/src/nvim/testdir/test_startup.vim @@ -339,6 +339,96 @@ func Test_A_F_H_arg() call delete('Xtestout') endfunc +func Test_invalid_args() + if !has('unix') || has('gui_running') + " can't get output of Vim. + return + endif + + for opt in ['-Y', '--does-not-exist'] + let out = split(system(GetVimCommand() .. ' ' .. opt), "\n") + call assert_equal(1, v:shell_error) + call assert_match('^VIM - Vi IMproved .* (.*)$', out[0]) + call assert_equal('Unknown option argument: "' .. opt .. '"', out[1]) + call assert_equal('More info with: "vim -h"', out[2]) + endfor + + for opt in ['-c', '-i', '-s', '-t', '-T', '-u', '-U', '-w', '-W', '--cmd', '--startuptime'] + let out = split(system(GetVimCommand() .. ' ' .. opt), "\n") + call assert_equal(1, v:shell_error) + call assert_match('^VIM - Vi IMproved .* (.*)$', out[0]) + call assert_equal('Argument missing after: "' .. opt .. '"', out[1]) + call assert_equal('More info with: "vim -h"', out[2]) + endfor + + if has('clientserver') + " FIXME: need to add --servername to this list + " but it causes vim-8.1.1282 to crash! + for opt in ['--remote', '--remote-send', '--remote-silent', '--remote-expr', + \ '--remote-tab', '--remote-tab-wait', + \ '--remote-tab-wait-silent', '--remote-tab-silent', + \ '--remote-wait', '--remote-wait-silent', + \ ] + let out = split(system(GetVimCommand() .. ' ' .. opt), "\n") + call assert_equal(1, v:shell_error) + call assert_match('^VIM - Vi IMproved .* (.*)$', out[0]) + call assert_equal('Argument missing after: "' .. opt .. '"', out[1]) + call assert_equal('More info with: "vim -h"', out[2]) + endfor + endif + + " FIXME: commented out as this causes vim-8.1.1282 to crash! + "if has('clipboard') + " let out = split(system(GetVimCommand() .. ' --display'), "\n") + " call assert_equal(1, v:shell_error) + " call assert_match('^VIM - Vi IMproved .* (.*)$', out[0]) + " call assert_equal('Argument missing after: "--display"', out[1]) + " call assert_equal('More info with: "vim -h"', out[2]) + "endif + + let out = split(system(GetVimCommand() .. ' -ix'), "\n") + call assert_equal(1, v:shell_error) + call assert_match('^VIM - Vi IMproved .* (.*)$', out[0]) + call assert_equal('Garbage after option argument: "-ix"', out[1]) + call assert_equal('More info with: "vim -h"', out[2]) + + let out = split(system(GetVimCommand() .. ' - xxx'), "\n") + call assert_equal(1, v:shell_error) + call assert_match('^VIM - Vi IMproved .* (.*)$', out[0]) + call assert_equal('Too many edit arguments: "xxx"', out[1]) + call assert_equal('More info with: "vim -h"', out[2]) + + " Detect invalid repeated arguments '-t foo -t foo", '-q foo -q foo'. + for opt in ['-t', '-q'] + let out = split(system(GetVimCommand() .. repeat(' ' .. opt .. ' foo', 2)), "\n") + call assert_equal(1, v:shell_error) + call assert_match('^VIM - Vi IMproved .* (.*)$', out[0]) + call assert_equal('Too many edit arguments: "' .. opt .. '"', out[1]) + call assert_equal('More info with: "vim -h"', out[2]) + endfor + + for opt in [' -cq', ' --cmd q', ' +', ' -S foo'] + let out = split(system(GetVimCommand() .. repeat(opt, 11)), "\n") + call assert_equal(1, v:shell_error) + " FIXME: The error message given by Vim is not ideal in case of repeated + " -S foo since it does not mention -S. + call assert_match('^VIM - Vi IMproved .* (.*)$', out[0]) + call assert_equal('Too many "+command", "-c command" or "--cmd command" arguments', out[1]) + call assert_equal('More info with: "vim -h"', out[2]) + endfor + + " FIXME: commented out as this causes vim-8.1.1282 to crash! + "if has('gui_gtk') + " for opt in ['--socketid x', '--socketid 0xg'] + " let out = split(system(GetVimCommand() .. ' ' .. opt), "\n") + " call assert_equal(1, v:shell_error) + " call assert_match('^VIM - Vi IMproved .* (.*)$', out[0]) + " call assert_equal('Invalid argument for: "--socketid"', out[1]) + " call assert_equal('More info with: "vim -h"', out[2]) + " endfor + "endif +endfunc + func Test_file_args() let after = [ \ 'call writefile(argv(), "Xtestout")', |