mirror of
https://github.com/vim/vim.git
synced 2025-09-26 04:04:07 -04:00
patch 8.2.2100: insufficient testing for function range and dict
Problem: Insufficient testing for function range and dict. Solution: Add a few tests. (Dominique Pellé, closes #7428)
This commit is contained in:
@@ -2099,6 +2099,7 @@ func Test_call()
|
||||
let mydict = {'data': [0, 1, 2, 3], 'len': function("Mylen")}
|
||||
eval mydict.len->call([], mydict)->assert_equal(4)
|
||||
call assert_fails("call call('Mylen', [], 0)", 'E715:')
|
||||
call assert_fails('call foo', 'E107:')
|
||||
endfunc
|
||||
|
||||
func Test_char2nr()
|
||||
|
@@ -247,6 +247,11 @@ func Test_closure_counter()
|
||||
call assert_equal(2, l:F())
|
||||
call assert_equal(3, l:F())
|
||||
call assert_equal(4, l:F())
|
||||
|
||||
call assert_match("^\n function <SNR>\\d\\+_bar() closure"
|
||||
\ .. "\n1 let x += 1"
|
||||
\ .. "\n2 return x"
|
||||
\ .. "\n endfunction$", execute('func s:bar'))
|
||||
endfunc
|
||||
|
||||
func Test_closure_unlet()
|
||||
|
@@ -153,8 +153,7 @@ func Test_deadly_signal_TERM()
|
||||
call assert_equal(['foo'], getline(1, '$'))
|
||||
|
||||
let result = readfile('XautoOut')
|
||||
call assert_match('VimLeavePre triggered', result[0])
|
||||
call assert_match('VimLeave triggered', result[1])
|
||||
call assert_equal(["VimLeavePre triggered", "VimLeave triggered"], result)
|
||||
|
||||
%bwipe!
|
||||
call delete('.Xsig_TERM.swp')
|
||||
|
@@ -445,4 +445,36 @@ func Test_func_arg_error()
|
||||
delfunc Xfunc
|
||||
endfunc
|
||||
|
||||
func Test_func_dict()
|
||||
let mydict = {'a': 'b'}
|
||||
function mydict.somefunc() dict
|
||||
return len(self)
|
||||
endfunc
|
||||
|
||||
call assert_equal("{'a': 'b', 'somefunc': function('2')}", string(mydict))
|
||||
call assert_equal(2, mydict.somefunc())
|
||||
call assert_match("^\n function \\d\\\+() dict"
|
||||
\ .. "\n1 return len(self)"
|
||||
\ .. "\n endfunction$", execute('func mydict.somefunc'))
|
||||
endfunc
|
||||
|
||||
func Test_func_range()
|
||||
new
|
||||
call setline(1, range(1, 8))
|
||||
func FuncRange() range
|
||||
echo a:firstline
|
||||
echo a:lastline
|
||||
endfunc
|
||||
3
|
||||
call assert_equal("\n3\n3", execute('call FuncRange()'))
|
||||
call assert_equal("\n4\n6", execute('4,6 call FuncRange()'))
|
||||
call assert_equal("\n function FuncRange() range"
|
||||
\ .. "\n1 echo a:firstline"
|
||||
\ .. "\n2 echo a:lastline"
|
||||
\ .. "\n endfunction",
|
||||
\ execute('function FuncRange'))
|
||||
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
@@ -750,6 +750,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
2100,
|
||||
/**/
|
||||
2099,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user