summaryrefslogtreecommitdiff
path: root/src/testdir
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-12-06 15:03:19 +0100
committerBram Moolenaar <Bram@vim.org>2020-12-06 15:03:19 +0100
commit67322bf74a106b6476b093e75da87d61e2181b76 (patch)
tree6b99bac57200921542860cb25ead34f5470969f7 /src/testdir
parent918a4249176a8ccec3a34c9c7ef7bf4163676a63 (diff)
downloadvim-git-67322bf74a106b6476b093e75da87d61e2181b76.tar.gz
patch 8.2.2100: insufficient testing for function range and dictv8.2.2100
Problem: Insufficient testing for function range and dict. Solution: Add a few tests. (Dominique Pellé, closes #7428)
Diffstat (limited to 'src/testdir')
-rw-r--r--src/testdir/test_functions.vim1
-rw-r--r--src/testdir/test_lambda.vim5
-rw-r--r--src/testdir/test_signals.vim3
-rw-r--r--src/testdir/test_user_func.vim32
4 files changed, 39 insertions, 2 deletions
diff --git a/src/testdir/test_functions.vim b/src/testdir/test_functions.vim
index d6e408a84..dd4429e70 100644
--- a/src/testdir/test_functions.vim
+++ b/src/testdir/test_functions.vim
@@ -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()
diff --git a/src/testdir/test_lambda.vim b/src/testdir/test_lambda.vim
index aa734624a..60d58c542 100644
--- a/src/testdir/test_lambda.vim
+++ b/src/testdir/test_lambda.vim
@@ -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()
diff --git a/src/testdir/test_signals.vim b/src/testdir/test_signals.vim
index 78b2cecb8..1723f3310 100644
--- a/src/testdir/test_signals.vim
+++ b/src/testdir/test_signals.vim
@@ -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')
diff --git a/src/testdir/test_user_func.vim b/src/testdir/test_user_func.vim
index 2edaec87e..2db558931 100644
--- a/src/testdir/test_user_func.vim
+++ b/src/testdir/test_user_func.vim
@@ -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