mirror of
https://github.com/neovim/neovim.git
synced 2025-01-01 17:23:36 -07:00
vim-patch:8.2.0531: various errors not tested
Problem: Various errors not tested.
Solution: Add tests. (Yegappan Lakshmanan, closes vim/vim#5895)
476a613135
Need to remove "F" flag from 'shortmess' as early as possible.
This commit is contained in:
parent
a8d454816a
commit
5559cabf4d
@ -179,4 +179,4 @@ newtestssilent: $(NEW_TESTS_RES)
|
|||||||
@echo "[OLDTEST] Running" $*
|
@echo "[OLDTEST] Running" $*
|
||||||
@rm -rf $*.failed test.ok $(RM_ON_RUN)
|
@rm -rf $*.failed test.ok $(RM_ON_RUN)
|
||||||
@mkdir -p $(TMPDIR)
|
@mkdir -p $(TMPDIR)
|
||||||
@/bin/sh runnvim.sh $(ROOT) $(NVIM_PRG) $* $(RUN_VIMTEST) $(NO_INITS) -u NONE -S runtest.vim $*.vim
|
@/bin/sh runnvim.sh $(ROOT) $(NVIM_PRG) $* $(RUN_VIMTEST) $(NO_INITS) -u NONE --cmd "set shortmess-=F" -S runtest.vim $*.vim
|
||||||
|
@ -87,4 +87,10 @@ func Test_source_autocmd_sfile()
|
|||||||
call delete('Xscript.vim')
|
call delete('Xscript.vim')
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_source_error()
|
||||||
|
call assert_fails('scriptencoding utf-8', 'E167:')
|
||||||
|
call assert_fails('finish', 'E168:')
|
||||||
|
" call assert_fails('scriptversion 2', 'E984:')
|
||||||
|
endfunc
|
||||||
|
|
||||||
" vim: shiftwidth=2 sts=2 expandtab
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@ -363,6 +363,64 @@ func Test_syntax_invalid_arg()
|
|||||||
call assert_fails('syntax sync x', 'E404:')
|
call assert_fails('syntax sync x', 'E404:')
|
||||||
call assert_fails('syntax keyword Abc a[', 'E789:')
|
call assert_fails('syntax keyword Abc a[', 'E789:')
|
||||||
call assert_fails('syntax keyword Abc a[bc]d', 'E890:')
|
call assert_fails('syntax keyword Abc a[bc]d', 'E890:')
|
||||||
|
|
||||||
|
let caught_393 = 0
|
||||||
|
try
|
||||||
|
syntax keyword cMyItem grouphere G1
|
||||||
|
catch /E393:/
|
||||||
|
let caught_393 = 1
|
||||||
|
endtry
|
||||||
|
call assert_equal(1, caught_393)
|
||||||
|
|
||||||
|
let caught_394 = 0
|
||||||
|
try
|
||||||
|
syntax sync match Abc grouphere MyItem "abc"'
|
||||||
|
catch /E394:/
|
||||||
|
let caught_394 = 1
|
||||||
|
endtry
|
||||||
|
call assert_equal(1, caught_394)
|
||||||
|
|
||||||
|
" Test for too many \z\( and unmatched \z\(
|
||||||
|
" Not able to use assert_fails() here because both E50:/E879: and E475:
|
||||||
|
" messages are emitted.
|
||||||
|
set regexpengine=1
|
||||||
|
let caught_52 = 0
|
||||||
|
try
|
||||||
|
syntax region MyRegion start='\z\(' end='\*/'
|
||||||
|
catch /E52:/
|
||||||
|
let caught_52 = 1
|
||||||
|
endtry
|
||||||
|
call assert_equal(1, caught_52)
|
||||||
|
|
||||||
|
let caught_50 = 0
|
||||||
|
try
|
||||||
|
let cmd = "syntax region MyRegion start='"
|
||||||
|
let cmd ..= repeat("\\z\\(.\\)", 10) .. "' end='\*/'"
|
||||||
|
exe cmd
|
||||||
|
catch /E50:/
|
||||||
|
let caught_50 = 1
|
||||||
|
endtry
|
||||||
|
call assert_equal(1, caught_50)
|
||||||
|
|
||||||
|
set regexpengine=2
|
||||||
|
let caught_54 = 0
|
||||||
|
try
|
||||||
|
syntax region MyRegion start='\z\(' end='\*/'
|
||||||
|
catch /E54:/
|
||||||
|
let caught_54 = 1
|
||||||
|
endtry
|
||||||
|
call assert_equal(1, caught_54)
|
||||||
|
|
||||||
|
let caught_879 = 0
|
||||||
|
try
|
||||||
|
let cmd = "syntax region MyRegion start='"
|
||||||
|
let cmd ..= repeat("\\z\\(.\\)", 10) .. "' end='\*/'"
|
||||||
|
exe cmd
|
||||||
|
catch /E879:/
|
||||||
|
let caught_879 = 1
|
||||||
|
endtry
|
||||||
|
call assert_equal(1, caught_879)
|
||||||
|
set regexpengine&
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func Test_syn_sync()
|
func Test_syn_sync()
|
||||||
|
@ -3,6 +3,9 @@
|
|||||||
" Also test that a builtin function cannot be replaced.
|
" Also test that a builtin function cannot be replaced.
|
||||||
" Also test for regression when calling arbitrary expression.
|
" Also test for regression when calling arbitrary expression.
|
||||||
|
|
||||||
|
source check.vim
|
||||||
|
source shared.vim
|
||||||
|
|
||||||
func Table(title, ...)
|
func Table(title, ...)
|
||||||
let ret = a:title
|
let ret = a:title
|
||||||
let idx = 1
|
let idx = 1
|
||||||
@ -83,6 +86,7 @@ func Test_user_func()
|
|||||||
normal o[(one again
|
normal o[(one again
|
||||||
call assert_equal('1. one again', getline('.'))
|
call assert_equal('1. one again', getline('.'))
|
||||||
|
|
||||||
|
" Try to overwrite a function in the global (g:) scope
|
||||||
call assert_equal(3, max([1, 2, 3]))
|
call assert_equal(3, max([1, 2, 3]))
|
||||||
call assert_fails("call extend(g:, {'max': function('min')})", 'E704')
|
call assert_fails("call extend(g:, {'max': function('min')})", 'E704')
|
||||||
call assert_equal(3, max([1, 2, 3]))
|
call assert_equal(3, max([1, 2, 3]))
|
||||||
@ -178,4 +182,256 @@ func Test_function_list()
|
|||||||
call assert_fails("function Xabc", 'E123:')
|
call assert_fails("function Xabc", 'E123:')
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Test for <sfile>, <slnum> in a function
|
||||||
|
func Test_sfile_in_function()
|
||||||
|
func Xfunc()
|
||||||
|
call assert_match('..Test_sfile_in_function\[5]..Xfunc', expand('<sfile>'))
|
||||||
|
call assert_equal('2', expand('<slnum>'))
|
||||||
|
endfunc
|
||||||
|
call Xfunc()
|
||||||
|
delfunc Xfunc
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
" Test trailing text after :endfunction {{{1
|
||||||
|
func Test_endfunction_trailing()
|
||||||
|
call assert_false(exists('*Xtest'))
|
||||||
|
|
||||||
|
exe "func Xtest()\necho 'hello'\nendfunc\nlet done = 'yes'"
|
||||||
|
call assert_true(exists('*Xtest'))
|
||||||
|
call assert_equal('yes', done)
|
||||||
|
delfunc Xtest
|
||||||
|
unlet done
|
||||||
|
|
||||||
|
exe "func Xtest()\necho 'hello'\nendfunc|let done = 'yes'"
|
||||||
|
call assert_true(exists('*Xtest'))
|
||||||
|
call assert_equal('yes', done)
|
||||||
|
delfunc Xtest
|
||||||
|
unlet done
|
||||||
|
|
||||||
|
" trailing line break
|
||||||
|
exe "func Xtest()\necho 'hello'\nendfunc\n"
|
||||||
|
call assert_true(exists('*Xtest'))
|
||||||
|
delfunc Xtest
|
||||||
|
|
||||||
|
set verbose=1
|
||||||
|
exe "func Xtest()\necho 'hello'\nendfunc \" garbage"
|
||||||
|
call assert_notmatch('W22:', split(execute('1messages'), "\n")[0])
|
||||||
|
call assert_true(exists('*Xtest'))
|
||||||
|
delfunc Xtest
|
||||||
|
|
||||||
|
exe "func Xtest()\necho 'hello'\nendfunc garbage"
|
||||||
|
call assert_match('W22:', split(execute('1messages'), "\n")[0])
|
||||||
|
call assert_true(exists('*Xtest'))
|
||||||
|
delfunc Xtest
|
||||||
|
set verbose=0
|
||||||
|
|
||||||
|
function Foo()
|
||||||
|
echo 'hello'
|
||||||
|
endfunction | echo 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
|
||||||
|
delfunc Foo
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
func Test_delfunction_force()
|
||||||
|
delfunc! Xtest
|
||||||
|
delfunc! Xtest
|
||||||
|
func Xtest()
|
||||||
|
echo 'nothing'
|
||||||
|
endfunc
|
||||||
|
delfunc! Xtest
|
||||||
|
delfunc! Xtest
|
||||||
|
|
||||||
|
" Try deleting the current function
|
||||||
|
call assert_fails('delfunc Test_delfunction_force', 'E131:')
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
func Test_function_defined_line()
|
||||||
|
CheckNotGui
|
||||||
|
|
||||||
|
let lines =<< trim [CODE]
|
||||||
|
" F1
|
||||||
|
func F1()
|
||||||
|
" F2
|
||||||
|
func F2()
|
||||||
|
"
|
||||||
|
"
|
||||||
|
"
|
||||||
|
return
|
||||||
|
endfunc
|
||||||
|
" F3
|
||||||
|
execute "func F3()\n\n\n\nreturn\nendfunc"
|
||||||
|
" F4
|
||||||
|
execute "func F4()\n
|
||||||
|
\\n
|
||||||
|
\\n
|
||||||
|
\\n
|
||||||
|
\return\n
|
||||||
|
\endfunc"
|
||||||
|
endfunc
|
||||||
|
" F5
|
||||||
|
execute "func F5()\n\n\n\nreturn\nendfunc"
|
||||||
|
" F6
|
||||||
|
execute "func F6()\n
|
||||||
|
\\n
|
||||||
|
\\n
|
||||||
|
\\n
|
||||||
|
\return\n
|
||||||
|
\endfunc"
|
||||||
|
call F1()
|
||||||
|
verbose func F1
|
||||||
|
verbose func F2
|
||||||
|
verbose func F3
|
||||||
|
verbose func F4
|
||||||
|
verbose func F5
|
||||||
|
verbose func F6
|
||||||
|
qall!
|
||||||
|
[CODE]
|
||||||
|
|
||||||
|
call writefile(lines, 'Xtest.vim')
|
||||||
|
let res = system(GetVimCommandClean() .. ' -es -X -S Xtest.vim')
|
||||||
|
call assert_equal(0, v:shell_error)
|
||||||
|
|
||||||
|
let m = matchstr(res, 'function F1()[^[:print:]]*[[:print:]]*')
|
||||||
|
call assert_match(' line 2$', m)
|
||||||
|
|
||||||
|
let m = matchstr(res, 'function F2()[^[:print:]]*[[:print:]]*')
|
||||||
|
call assert_match(' line 4$', m)
|
||||||
|
|
||||||
|
let m = matchstr(res, 'function F3()[^[:print:]]*[[:print:]]*')
|
||||||
|
call assert_match(' line 11$', m)
|
||||||
|
|
||||||
|
let m = matchstr(res, 'function F4()[^[:print:]]*[[:print:]]*')
|
||||||
|
call assert_match(' line 13$', m)
|
||||||
|
|
||||||
|
let m = matchstr(res, 'function F5()[^[:print:]]*[[:print:]]*')
|
||||||
|
call assert_match(' line 21$', m)
|
||||||
|
|
||||||
|
let m = matchstr(res, 'function F6()[^[:print:]]*[[:print:]]*')
|
||||||
|
call assert_match(' line 23$', m)
|
||||||
|
|
||||||
|
call delete('Xtest.vim')
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
" Test for defining a function reference in the global scope
|
||||||
|
func Test_add_funcref_to_global_scope()
|
||||||
|
let x = g:
|
||||||
|
let caught_E862 = 0
|
||||||
|
try
|
||||||
|
func x.Xfunc()
|
||||||
|
return 1
|
||||||
|
endfunc
|
||||||
|
catch /E862:/
|
||||||
|
let caught_E862 = 1
|
||||||
|
endtry
|
||||||
|
call assert_equal(1, caught_E862)
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
func Test_funccall_garbage_collect()
|
||||||
|
func Func(x, ...)
|
||||||
|
call add(a:x, a:000)
|
||||||
|
endfunc
|
||||||
|
call Func([], [])
|
||||||
|
" Must not crash cause by invalid freeing
|
||||||
|
call test_garbagecollect_now()
|
||||||
|
call assert_true(v:true)
|
||||||
|
delfunc Func
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
" Test for script-local function
|
||||||
|
func <SID>DoLast()
|
||||||
|
call append(line('$'), "last line")
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
func s:DoNothing()
|
||||||
|
call append(line('$'), "nothing line")
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
func Test_script_local_func()
|
||||||
|
set nocp nomore viminfo+=nviminfo
|
||||||
|
new
|
||||||
|
nnoremap <buffer> _x :call <SID>DoNothing()<bar>call <SID>DoLast()<bar>delfunc <SID>DoNothing<bar>delfunc <SID>DoLast<cr>
|
||||||
|
|
||||||
|
normal _x
|
||||||
|
call assert_equal('nothing line', getline(2))
|
||||||
|
call assert_equal('last line', getline(3))
|
||||||
|
close!
|
||||||
|
|
||||||
|
" Try to call a script local function in global scope
|
||||||
|
let lines =<< trim [CODE]
|
||||||
|
:call assert_fails('call s:Xfunc()', 'E81:')
|
||||||
|
:call assert_fails('let x = call("<SID>Xfunc", [])', 'E120:')
|
||||||
|
:call writefile(v:errors, 'Xresult')
|
||||||
|
:qall
|
||||||
|
|
||||||
|
[CODE]
|
||||||
|
call writefile(lines, 'Xscript')
|
||||||
|
if RunVim([], [], '-s Xscript')
|
||||||
|
call assert_equal([], readfile('Xresult'))
|
||||||
|
endif
|
||||||
|
call delete('Xresult')
|
||||||
|
call delete('Xscript')
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
" Test for errors in defining new functions
|
||||||
|
func Test_func_def_error()
|
||||||
|
call assert_fails('func Xfunc abc ()', 'E124:')
|
||||||
|
call assert_fails('func Xfunc(', 'E125:')
|
||||||
|
call assert_fails('func xfunc()', 'E128:')
|
||||||
|
|
||||||
|
" Try to redefine a function that is in use
|
||||||
|
let caught_E127 = 0
|
||||||
|
try
|
||||||
|
func! Test_func_def_error()
|
||||||
|
endfunc
|
||||||
|
catch /E127:/
|
||||||
|
let caught_E127 = 1
|
||||||
|
endtry
|
||||||
|
call assert_equal(1, caught_E127)
|
||||||
|
|
||||||
|
" Try to define a function in a dict twice
|
||||||
|
let d = {}
|
||||||
|
let lines =<< trim END
|
||||||
|
func d.F1()
|
||||||
|
return 1
|
||||||
|
endfunc
|
||||||
|
END
|
||||||
|
let l = join(lines, "\n") . "\n"
|
||||||
|
exe l
|
||||||
|
call assert_fails('exe l', 'E717:')
|
||||||
|
|
||||||
|
" Define an autoload function with an incorrect file name
|
||||||
|
call writefile(['func foo#Bar()', 'return 1', 'endfunc'], 'Xscript')
|
||||||
|
call assert_fails('source Xscript', 'E746:')
|
||||||
|
call delete('Xscript')
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
" Test for deleting a function
|
||||||
|
func Test_del_func()
|
||||||
|
call assert_fails('delfunction Xabc', 'E130:')
|
||||||
|
let d = {'a' : 10}
|
||||||
|
call assert_fails('delfunc d.a', 'E718:')
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
" Test for calling return outside of a function
|
||||||
|
func Test_return_outside_func()
|
||||||
|
call writefile(['return 10'], 'Xscript')
|
||||||
|
call assert_fails('source Xscript', 'E133:')
|
||||||
|
call delete('Xscript')
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
" Test for errors in calling a function
|
||||||
|
func Test_func_arg_error()
|
||||||
|
" Too many arguments
|
||||||
|
call assert_fails("call call('min', range(1,20))", 'E118:')
|
||||||
|
call assert_fails("call call('min', range(1,21))", 'E699:')
|
||||||
|
call assert_fails('echo min(0,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,0,1)',
|
||||||
|
\ 'E740:')
|
||||||
|
|
||||||
|
" Missing dict argument
|
||||||
|
func Xfunc() dict
|
||||||
|
return 1
|
||||||
|
endfunc
|
||||||
|
call assert_fails('call Xfunc()', 'E725:')
|
||||||
|
delfunc Xfunc
|
||||||
|
endfunc
|
||||||
|
|
||||||
" vim: shiftwidth=2 sts=2 expandtab
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@ -1495,58 +1495,6 @@ func Test_bitwise_functions()
|
|||||||
call assert_fails("call invert({})", 'E728:')
|
call assert_fails("call invert({})", 'E728:')
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
" Test trailing text after :endfunction {{{1
|
|
||||||
func Test_endfunction_trailing()
|
|
||||||
call assert_false(exists('*Xtest'))
|
|
||||||
|
|
||||||
exe "func Xtest()\necho 'hello'\nendfunc\nlet done = 'yes'"
|
|
||||||
call assert_true(exists('*Xtest'))
|
|
||||||
call assert_equal('yes', done)
|
|
||||||
delfunc Xtest
|
|
||||||
unlet done
|
|
||||||
|
|
||||||
exe "func Xtest()\necho 'hello'\nendfunc|let done = 'yes'"
|
|
||||||
call assert_true(exists('*Xtest'))
|
|
||||||
call assert_equal('yes', done)
|
|
||||||
delfunc Xtest
|
|
||||||
unlet done
|
|
||||||
|
|
||||||
" trailing line break
|
|
||||||
exe "func Xtest()\necho 'hello'\nendfunc\n"
|
|
||||||
call assert_true(exists('*Xtest'))
|
|
||||||
delfunc Xtest
|
|
||||||
|
|
||||||
set verbose=1
|
|
||||||
exe "func Xtest()\necho 'hello'\nendfunc \" garbage"
|
|
||||||
call assert_notmatch('W22:', split(execute('1messages'), "\n")[0])
|
|
||||||
call assert_true(exists('*Xtest'))
|
|
||||||
delfunc Xtest
|
|
||||||
|
|
||||||
exe "func Xtest()\necho 'hello'\nendfunc garbage"
|
|
||||||
call assert_match('W22:', split(execute('1messages'), "\n")[0])
|
|
||||||
call assert_true(exists('*Xtest'))
|
|
||||||
delfunc Xtest
|
|
||||||
set verbose=0
|
|
||||||
|
|
||||||
function Foo()
|
|
||||||
echo 'hello'
|
|
||||||
endfunction | echo 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
|
|
||||||
delfunc Foo
|
|
||||||
endfunc
|
|
||||||
|
|
||||||
func Test_delfunction_force()
|
|
||||||
delfunc! Xtest
|
|
||||||
delfunc! Xtest
|
|
||||||
func Xtest()
|
|
||||||
echo 'nothing'
|
|
||||||
endfunc
|
|
||||||
delfunc! Xtest
|
|
||||||
delfunc! Xtest
|
|
||||||
|
|
||||||
" Try deleting the current function
|
|
||||||
call assert_fails('delfunc Test_delfunction_force', 'E131:')
|
|
||||||
endfunc
|
|
||||||
|
|
||||||
" Test using bang after user command {{{1
|
" Test using bang after user command {{{1
|
||||||
func Test_user_command_with_bang()
|
func Test_user_command_with_bang()
|
||||||
command -bang Nieuw let nieuw = 1
|
command -bang Nieuw let nieuw = 1
|
||||||
@ -1556,26 +1504,6 @@ func Test_user_command_with_bang()
|
|||||||
delcommand Nieuw
|
delcommand Nieuw
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
" Test for script-local function
|
|
||||||
func <SID>DoLast()
|
|
||||||
call append(line('$'), "last line")
|
|
||||||
endfunc
|
|
||||||
|
|
||||||
func s:DoNothing()
|
|
||||||
call append(line('$'), "nothing line")
|
|
||||||
endfunc
|
|
||||||
|
|
||||||
func Test_script_local_func()
|
|
||||||
set nocp nomore viminfo+=nviminfo
|
|
||||||
new
|
|
||||||
nnoremap <buffer> _x :call <SID>DoNothing()<bar>call <SID>DoLast()<bar>delfunc <SID>DoNothing<bar>delfunc <SID>DoLast<cr>
|
|
||||||
|
|
||||||
normal _x
|
|
||||||
call assert_equal('nothing line', getline(2))
|
|
||||||
call assert_equal('last line', getline(3))
|
|
||||||
enew! | close
|
|
||||||
endfunc
|
|
||||||
|
|
||||||
func Test_script_expand_sfile()
|
func Test_script_expand_sfile()
|
||||||
let lines =<< trim END
|
let lines =<< trim END
|
||||||
func s:snr()
|
func s:snr()
|
||||||
@ -1735,84 +1663,6 @@ func Test_unlet_env()
|
|||||||
call assert_equal('', $TESTVAR)
|
call assert_equal('', $TESTVAR)
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func Test_funccall_garbage_collect()
|
|
||||||
func Func(x, ...)
|
|
||||||
call add(a:x, a:000)
|
|
||||||
endfunc
|
|
||||||
call Func([], [])
|
|
||||||
" Must not crash cause by invalid freeing
|
|
||||||
call test_garbagecollect_now()
|
|
||||||
call assert_true(v:true)
|
|
||||||
delfunc Func
|
|
||||||
endfunc
|
|
||||||
|
|
||||||
func Test_function_defined_line()
|
|
||||||
CheckNotGui
|
|
||||||
|
|
||||||
let lines =<< trim [CODE]
|
|
||||||
" F1
|
|
||||||
func F1()
|
|
||||||
" F2
|
|
||||||
func F2()
|
|
||||||
"
|
|
||||||
"
|
|
||||||
"
|
|
||||||
return
|
|
||||||
endfunc
|
|
||||||
" F3
|
|
||||||
execute "func F3()\n\n\n\nreturn\nendfunc"
|
|
||||||
" F4
|
|
||||||
execute "func F4()\n
|
|
||||||
\\n
|
|
||||||
\\n
|
|
||||||
\\n
|
|
||||||
\return\n
|
|
||||||
\endfunc"
|
|
||||||
endfunc
|
|
||||||
" F5
|
|
||||||
execute "func F5()\n\n\n\nreturn\nendfunc"
|
|
||||||
" F6
|
|
||||||
execute "func F6()\n
|
|
||||||
\\n
|
|
||||||
\\n
|
|
||||||
\\n
|
|
||||||
\return\n
|
|
||||||
\endfunc"
|
|
||||||
call F1()
|
|
||||||
verbose func F1
|
|
||||||
verbose func F2
|
|
||||||
verbose func F3
|
|
||||||
verbose func F4
|
|
||||||
verbose func F5
|
|
||||||
verbose func F6
|
|
||||||
qall!
|
|
||||||
[CODE]
|
|
||||||
|
|
||||||
call writefile(lines, 'Xtest.vim')
|
|
||||||
let res = system(GetVimCommandClean() .. ' -es -X -S Xtest.vim')
|
|
||||||
call assert_equal(0, v:shell_error)
|
|
||||||
|
|
||||||
let m = matchstr(res, 'function F1()[^[:print:]]*[[:print:]]*')
|
|
||||||
call assert_match(' line 2$', m)
|
|
||||||
|
|
||||||
let m = matchstr(res, 'function F2()[^[:print:]]*[[:print:]]*')
|
|
||||||
call assert_match(' line 4$', m)
|
|
||||||
|
|
||||||
let m = matchstr(res, 'function F3()[^[:print:]]*[[:print:]]*')
|
|
||||||
call assert_match(' line 11$', m)
|
|
||||||
|
|
||||||
let m = matchstr(res, 'function F4()[^[:print:]]*[[:print:]]*')
|
|
||||||
call assert_match(' line 13$', m)
|
|
||||||
|
|
||||||
let m = matchstr(res, 'function F5()[^[:print:]]*[[:print:]]*')
|
|
||||||
call assert_match(' line 21$', m)
|
|
||||||
|
|
||||||
let m = matchstr(res, 'function F6()[^[:print:]]*[[:print:]]*')
|
|
||||||
call assert_match(' line 23$', m)
|
|
||||||
|
|
||||||
call delete('Xtest.vim')
|
|
||||||
endfunc
|
|
||||||
|
|
||||||
" Test for missing :endif, :endfor, :endwhile and :endtry {{{1
|
" Test for missing :endif, :endfor, :endwhile and :endtry {{{1
|
||||||
func Test_missing_end()
|
func Test_missing_end()
|
||||||
call writefile(['if 2 > 1', 'echo ">"'], 'Xscript')
|
call writefile(['if 2 > 1', 'echo ">"'], 'Xscript')
|
||||||
@ -1948,16 +1798,6 @@ func Test_deep_nest()
|
|||||||
call delete('Xscript')
|
call delete('Xscript')
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
" Test for <sfile>, <slnum> in a function {{{1
|
|
||||||
func Test_sfile_in_function()
|
|
||||||
func Xfunc()
|
|
||||||
call assert_match('..Test_sfile_in_function\[5]..Xfunc', expand('<sfile>'))
|
|
||||||
call assert_equal('2', expand('<slnum>'))
|
|
||||||
endfunc
|
|
||||||
call Xfunc()
|
|
||||||
delfunc Xfunc
|
|
||||||
endfunc
|
|
||||||
|
|
||||||
" Test for errors in converting to float from various types {{{1
|
" Test for errors in converting to float from various types {{{1
|
||||||
func Test_float_conversion_errors()
|
func Test_float_conversion_errors()
|
||||||
if has('float')
|
if has('float')
|
||||||
|
Loading…
Reference in New Issue
Block a user