Patch 8.2.0610
Problem: Some tests are still old style.
Solution: Convert to new style tests. (Yegappan Lakshmanan, closes #5957)
Files: src/testdir/test_blob.vim, src/testdir/test_cursor_func.vim,
src/testdir/test_eval.in, src/testdir/test_eval.ok,
src/testdir/test_eval_func.vim, src/testdir/test_eval_stuff.vim,
src/testdir/test_expr.vim, src/testdir/test_filter_map.vim,
src/testdir/test_functions.vim, src/testdir/test_listdict.vim,
src/testdir/test_sort.vim, src/testdir/test_syntax.vim,
src/testdir/test_utf8.vim, src/testdir/test_vimscript.vim
*** ../vim-8.2.0609/src/testdir/test_blob.vim 2020-04-06 21:12:38.809322010
+0200
--- src/testdir/test_blob.vim 2020-04-20 16:30:37.216278824 +0200
***************
*** 307,312 ****
--- 307,315 ----
call assert_fails('call insert(b, -1)', 'E475:')
call assert_fails('call insert(b, 257)', 'E475:')
call assert_fails('call insert(b, 0, [9])', 'E745:')
+ call assert_fails('call insert(b, 0, -20)', 'E475:')
+ call assert_fails('call insert(b, 0, 20)', 'E475:')
+ call assert_fails('call insert(b, [])', 'E745:')
endfunc
func Test_blob_reverse()
*** ../vim-8.2.0609/src/testdir/test_cursor_func.vim 2019-10-27
21:25:06.000000000 +0100
--- src/testdir/test_cursor_func.vim 2020-04-20 16:30:37.216278824 +0200
***************
*** 115,117 ****
--- 115,119 ----
close
bwipe!
endfunc
+
+ " vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.2.0609/src/testdir/test_eval.in 2020-04-18 21:56:35.394407188
+0200
--- src/testdir/test_eval.in 2020-04-20 16:30:37.216278824 +0200
***************
*** 27,40 ****
execute "silent normal! Go==\n==\e\"".a:1."P"
endif
endfun
- :fun ErrExe(str)
- call append('$', 'Executing '.a:str)
- try
- execute a:str
- catch
- $put =v:exception
- endtry
- endfun
:fun Test()
$put ='{{{1 Appending NL with setreg()'
call setreg('a', 'abcA2', 'c')
--- 27,32 ----
***************
*** 109,211 ****
call AppendRegParts('*', 'V', "clipboard contents\n", "['clipboard
contents']", "clipboard contents\n", "['clipboard contents']")
call AppendRegParts('*', 'V', "something else\n", "['something else']",
"something else\n", "['something else']")
endif
- $put ='{{{1 Errors'
- call ErrExe('call setreg()')
- call ErrExe('call setreg(1)')
- call ErrExe('call setreg(1, 2, 3, 4)')
- call ErrExe('call setreg([], 2)')
- call ErrExe('call setreg(1, {})')
- call ErrExe('call setreg(1, 2, [])')
- call ErrExe('call setreg("/", ["1", "2"])')
- call ErrExe('call setreg("=", ["1", "2"])')
- call ErrExe('call setreg(1, ["", "", [], ""])')
endfun
:"
:call Test()
:"
:delfunction SetReg
:delfunction AppendRegContents
- :delfunction ErrExe
:delfunction Test
:delcommand AR
:call garbagecollect(1)
:"
- :" function name not starting with capital
- :try
- :func! g:test()
- :echo "test"
- :endfunc
- :catch
- :$put =v:exception
- :endtry
- :"
- :" function name includes a colon
- :try
- :func! b:test()
- :echo "test"
- :endfunc
- :catch
- :$put =v:exception
- :endtry
- :"
- :" function name folowed by #
- :try
- :func! test2() "#
- :echo "test2"
- :endfunc
- :catch
- :$put =v:exception
- :endtry
- :"
- :" function name starting with/without "g:", buffer-local funcref.
- :function! g:Foo(n)
- : $put ='called Foo(' . a:n . ')'
- :endfunction
- :let b:my_func = function('Foo')
- :call b:my_func(1)
- :echo g:Foo(2)
- :echo Foo(3)
- :"
- :" script-local function used in Funcref must exist.
- :so test_eval_func.vim
- :"
- :" Using $ instead of '$' must give an error
- :try
- : call append($, 'foobar')
- :catch
- :$put =v:exception
- :endtry
- :"
- :$put ='{{{1 getcurpos/setpos'
- /^012345678
- 6l:let sp = getcurpos()
- 0:call setpos('.', sp)
- jyl:$put
- :"
- :" substring and variable name
- :let str = 'abcdef'
- :let n = 3
- :$put =str[n:]
- :$put =str[:n]
- :$put =str[n:n]
- :unlet n
- :let nn = 3
- :$put =str[nn:]
- :$put =str[:nn]
- :$put =str[nn:nn]
- :unlet nn
- :let b:nn = 4
- :$put =str[b:nn:]
- :$put =str[:b:nn]
- :$put =str[b:nn:b:nn]
- :unlet b:nn
- :"
:/^start:/+1,$wq! test.out
:" vim: et ts=4 isk-=\: fmr=???,???
:call getchar()
ENDTEST
- 012345678
- 012345678
-
start:
--- 101,119 ----
*** ../vim-8.2.0609/src/testdir/test_eval.ok 2020-04-18 21:56:35.394407188
+0200
--- src/testdir/test_eval.ok 2020-04-20 16:32:30.440013298 +0200
***************
*** 208,251 ****
{{{1 System clipboard
*: type V; value: clipboard contents)
call assert_true(has_key(d, ''))
call assert_true(has_key(d, 'a'))
+ call assert_fails("let i = has_key([], 'a')", 'E715:')
let d[''] = 'none'
let d['a'] = 'aaa'
*** ../vim-8.2.0609/src/testdir/test_filter_map.vim 2020-01-29
22:17:13.029497794 +0100
--- src/testdir/test_filter_map.vim 2020-04-20 16:30:37.220278815 +0200
***************
*** 89,97 ****
call assert_equal({"foo": "f", "bar": "b", "baz": "b"}, map(copy(dict),
function('s:filter4')))
endfunc
! func Test_map_fails()
call assert_fails('call map([1], "42 +")', 'E15:')
call assert_fails('call filter([1], "42 +")', 'E15:')
endfunc
func Test_map_and_modify()
--- 89,103 ----
call assert_equal({"foo": "f", "bar": "b", "baz": "b"}, map(copy(dict),
function('s:filter4')))
endfunc
! func Test_map_filter_fails()
call assert_fails('call map([1], "42 +")', 'E15:')
call assert_fails('call filter([1], "42 +")', 'E15:')
+ call assert_fails("let l = map('abc', '\"> \" . v:val')", 'E712:')
+ call assert_fails("let l = filter('abc', '\"> \" . v:val')", 'E712:')
+ call assert_fails("let l = filter([1, 2, 3], '{}')", 'E728:')
+ call assert_fails("let l = filter({'k' : 10}, '{}')", 'E728:')
+ call assert_equal(0, map(test_null_list(), '"> " .. v:val'))
+ call assert_equal(0, map(test_null_dict(), '"> " .. v:val'))
endfunc
func Test_map_and_modify()
***************
*** 103,105 ****
--- 109,113 ----
call assert_fails('call map(d, "remove(d, v:key)[0]")', 'E741:')
call assert_fails('echo map(d, {k,v -> remove(d, k)})', 'E741:')
endfunc
+
+ " vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.2.0609/src/testdir/test_functions.vim 2020-04-08
21:50:18.872619665 +0200
--- src/testdir/test_functions.vim 2020-04-20 16:30:37.220278815 +0200
***************
*** 99,107 ****
--- 99,109 ----
call assert_equal(2, len('ab'))
call assert_equal(0, len([]))
+ call assert_equal(0, len(test_null_list()))
call assert_equal(2, len([2, 1]))
call assert_equal(0, len({}))
+ call assert_equal(0, len(test_null_dict()))
call assert_equal(2, len({'a': 1, 'b': 2}))
call assert_fails('call len(v:none)', 'E701:')
***************
*** 799,804 ****
--- 801,809 ----
split
only
undo
+
+ " Using $ instead of '$' must give an error
+ call assert_fails("call append($, 'foobar')", 'E116:')
endfunc
func Test_getbufvar()
***************
*** 2043,2048 ****
--- 2048,2054 ----
" list2str()
call assert_equal('ABC', list2str(range(65, 67)))
+ call assert_fails('let s = list2str(5)', 'E474:')
" lock()
let thelist = range(5)
***************
*** 2216,2219 ****
--- 2222,2238 ----
call assert_equal([], screenchars(-1, -1))
endfunc
+ " Test for getcurpos() and setpos()
+ func Test_getcurpos_setpos()
+ new
+ call setline(1, ['012345678', '012345678'])
+ normal gg6l
+ let sp = getcurpos()
+ normal 0
+ call setpos('.', sp)
+ normal jyl
+ call assert_equal('6', @")
+ close!
+ endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.2.0609/src/testdir/test_listdict.vim 2020-04-06
21:35:02.464237765 +0200
--- src/testdir/test_listdict.vim 2020-04-20 16:30:37.220278815 +0200
***************
*** 32,37 ****
--- 32,38 ----
call assert_equal([1, 'as''d', [1, 2, function('strlen')], {'a': 1}],
l[0:8])
call assert_equal([], l[8:-1])
call assert_equal([], l[0:-10])
+ call assert_equal([], test_null_list()[:2])
endfunc
" List identity
***************
*** 168,173 ****
--- 169,187 ----
call assert_equal({'c': 'ccc', '1': 99, 'b': [1, 2, function('strlen')],
'3': 33, '-1': {'a': 1}}, d)
call filter(d, 'v:key =~ ''[ac391]''')
call assert_equal({'c': 'ccc', '1': 99, '3': 33, '-1': {'a': 1}}, d)
+
+ " duplicate key
+ call assert_fails("let d = {'k' : 10, 'k' : 20}", 'E721:')
+ " missing comma
+ call assert_fails("let d = {'k' : 10 'k' : 20}", 'E722:')
+ " missing curly brace
+ call assert_fails("let d = {'k' : 10,", 'E723:')
+ " invalid key
+ call assert_fails('let d = #{++ : 10}', 'E15:')
+ " wrong type for key
+ call assert_fails('let d={[] : 10}', 'E730:')
+ " undefined variable as value
+ call assert_fails("let d={'k' : i}", 'E121:')
endfunc
" Dictionary identity
***************
*** 262,268 ****
unlet g:dict
endfunc
! " Test removing items in la dictionary
func Test_dict_func_remove()
let d = {1:'a', 2:'b', 3:'c'}
call assert_equal('b', remove(d, 2))
--- 276,282 ----
unlet g:dict
endfunc
! " Test removing items in a dictionary
func Test_dict_func_remove()
let d = {1:'a', 2:'b', 3:'c'}
call assert_equal('b', remove(d, 2))
***************
*** 634,639 ****
--- 648,658 ----
call assert_fails('call reverse("")', 'E899:')
call assert_fails('call uniq([1, 2], {x, y -> []})', 'E882:')
+ call assert_fails("call sort([1, 2], function('min'), 1)", "E715:")
+ call assert_fails("call sort([1, 2], function('invalid_func'))", "E700:")
+ call assert_fails("call sort([1, 2], function('min'))", "E702:")
+ call assert_equal(0, sort(test_null_list()))
+ call assert_equal(0, uniq(test_null_list()))
endfunc
" splitting a string to a List using split()
***************
*** 748,753 ****
--- 767,775 ----
call assert_fails("call extend([1, 2], 1)", 'E712:')
call assert_fails("call extend([1, 2], {})", 'E712:')
+
+ " Extend g: dictionary with an invalid variable name
+ call assert_fails("call extend(g:, {'-!' : 10})", 'E461:')
endfunc
func s:check_scope_dict(x, fixed)
***************
*** 871,876 ****
--- 893,918 ----
call assert_fails("let v = range(5)[2:[]]", 'E730:')
call assert_fails("let v = range(5)[2:{-> 2}(]", 'E116:')
call assert_fails("let v = range(5)[2:3", 'E111:')
+ call assert_fails("let l = insert([1,2,3], 4, 10)", 'E684:')
+ call assert_fails("let l = insert([1,2,3], 4, -10)", 'E684:')
+ call assert_fails("let l = insert([1,2,3], 4, [])", 'E745:')
+ endfunc
+
+ " Test for a null list
+ func Test_null_list()
+ call assert_equal(0, join(test_null_list()))
+ call assert_fails('let s = join([1, 2], [])', 'E730:')
+ call assert_equal([], split(test_null_string()))
+ endfunc
+
+ " Test for a null dict
+ func Test_null_dict()
+ call assert_equal(0, items(test_null_dict()))
+ call assert_equal(0, keys(test_null_dict()))
+ call assert_equal(0, values(test_null_dict()))
+ call assert_false(has_key(test_null_dict(), 'k'))
+ call assert_fails("let l = [] + test_null_list()", 'E15:')
+ call assert_fails("let l = test_null_list() + []", 'E15:')
endfunc
" vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.2.0609/src/testdir/test_sort.vim 2020-02-17 22:11:39.666644199
+0100
--- src/testdir/test_sort.vim 2020-04-20 16:30:37.220278815 +0200
***************
*** 47,53 ****
call assert_equal(['2', 'A', 'AA', 'a', 1, 3.3], sort([3.3, 1, "2", "A",
"a", "AA"], ''))
call assert_equal(['2', 'A', 'AA', 'a', 1, 3.3], sort([3.3, 1, "2", "A",
"a", "AA"], 0))
call assert_equal(['2', 'A', 'a', 'AA', 1, 3.3], sort([3.3, 1, "2", "A",
"a", "AA"], 1))
! call assert_fails('call sort([3.3, 1, "2"], 3)', "E474")
endfunc
" Tests for the ":sort" command.
--- 47,53 ----
call assert_equal(['2', 'A', 'AA', 'a', 1, 3.3], sort([3.3, 1, "2", "A",
"a", "AA"], ''))
call assert_equal(['2', 'A', 'AA', 'a', 1, 3.3], sort([3.3, 1, "2", "A",
"a", "AA"], 0))
call assert_equal(['2', 'A', 'a', 'AA', 1, 3.3], sort([3.3, 1, "2", "A",
"a", "AA"], 1))
! call assert_fails('call sort([3.3, 1, "2"], 3)', "E474:")
endfunc
" Tests for the ":sort" command.
*** ../vim-8.2.0609/src/testdir/test_syntax.vim 2020-04-19 18:31:21.715570505
+0200
--- src/testdir/test_syntax.vim 2020-04-20 16:30:37.220278815 +0200
***************
*** 151,156 ****
--- 151,160 ----
let a = execute('syntax list')
call assert_equal("\nNo Syntax items defined for this buffer", a)
+ syntax keyword Type int containedin=g1 skipwhite skipempty skipnl
nextgroup=Abc
+ let exp = "Type xxx containedin=g1 nextgroup=Abc skipnl
skipwhite skipempty int"
+ call assert_equal(exp, split(execute("syntax list"), "\n")[1])
+
bd
endfunc
*** ../vim-8.2.0609/src/testdir/test_utf8.vim 2020-03-25 22:23:41.898363595
+0100
--- src/testdir/test_utf8.vim 2020-04-20 16:30:37.220278815 +0200
***************
*** 103,108 ****
--- 103,111 ----
let sres = list2str(l, 1)
call assert_equal([65, 66, 67], str2list("ABC"))
+ " Try converting a list to a string in latin-1 encoding
+ call assert_equal([1, 2, 3], str2list(list2str([1, 2, 3])))
+
let &encoding = save_encoding
call assert_equal(l, lres)
call assert_equal(s, sres)
*** ../vim-8.2.0609/src/testdir/test_vimscript.vim 2020-04-19
17:24:48.665264342 +0200
--- src/testdir/test_vimscript.vim 2020-04-20 16:30:37.220278815 +0200
***************
*** 1980,1985 ****
--- 1980,2065 ----
endif
endfunc
+ func Test_invalid_function_names()
+ " function name not starting with capital
+ let caught_e128 = 0
+ try
+ func! g:test()
+ echo "test"
+ endfunc
+ catch /E128:/
+ let caught_e128 = 1
+ endtry
+ call assert_equal(1, caught_e128)
+
+ " function name includes a colon
+ let caught_e884 = 0
+ try
+ func! b:test()
+ echo "test"
+ endfunc
+ catch /E884:/
+ let caught_e884 = 1
+ endtry
+ call assert_equal(1, caught_e884)
+
+ " function name folowed by #
+ let caught_e128 = 0
+ try
+ func! test2() "#
+ echo "test2"
+ endfunc
+ catch /E128:/
+ let caught_e128 = 1
+ endtry
+ call assert_equal(1, caught_e128)
+
+ " function name starting with/without "g:", buffer-local funcref.
+ function! g:Foo(n)
+ return 'called Foo(' . a:n . ')'
+ endfunction
+ let b:my_func = function('Foo')
+ call assert_equal('called Foo(1)', b:my_func(1))
+ call assert_equal('called Foo(2)', g:Foo(2))
+ call assert_equal('called Foo(3)', Foo(3))
+ delfunc g:Foo
+
+ " script-local function used in Funcref must exist.
+ let lines =<< trim END
+ func s:Testje()
+ return "foo"
+ endfunc
+ let Bar = function('s:Testje')
+ call assert_equal(0, exists('s:Testje'))
+ call assert_equal(1, exists('*s:Testje'))
+ call assert_equal(1, exists('Bar'))
+ call assert_equal(1, exists('*Bar'))
+ END
+ call writefile(lines, 'Xscript')
+ source Xscript
+ call delete('Xscript')
+ endfunc
+
+ " substring and variable name
+ func Test_substring_var()
+ let str = 'abcdef'
+ let n = 3
+ call assert_equal('def', str[n:])
+ call assert_equal('abcd', str[:n])
+ call assert_equal('d', str[n:n])
+ unlet n
+ let nn = 3
+ call assert_equal('def', str[nn:])
+ call assert_equal('abcd', str[:nn])
+ call assert_equal('d', str[nn:nn])
+ unlet nn
+ let b:nn = 4
+ call assert_equal('ef', str[b:nn:])
+ call assert_equal('abcde', str[:b:nn])
+ call assert_equal('e', str[b:nn:b:nn])
+ unlet b:nn
+ endfunc
+
"-------------------------------------------------------------------------------
" Modelines {{{1
" vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker
*** ../vim-8.2.0609/src/version.c 2020-04-20 16:21:50.269555351 +0200
--- src/version.c 2020-04-20 16:31:48.044112484 +0200
***************
*** 748,749 ****
--- 748,751 ----
{ /* Add new patch number below this line */
+ /**/
+ 610,
/**/
--
Engineers are widely recognized as superior marriage material: intelligent,
dependable, employed, honest, and handy around the house.
(Scott Adams - The Dilbert principle)
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/vim_dev/202004201450.03KEoT8Z020251%40masaka.moolenaar.net.