1
0
forked from aniani/vim

patch 8.1.1336: some eval functionality is not covered by tests

Problem:    Some eval functionality is not covered by tests.
Solution:   Add a few more test cases. (Masato Nishihata, closes #4374)
This commit is contained in:
Bram Moolenaar
2019-05-16 22:24:55 +02:00
parent dda4144d39
commit 17aca707f9
9 changed files with 62 additions and 7 deletions

View File

@@ -8,7 +8,7 @@ func Test_setbufline_getbufline()
hide hide
call assert_equal(0, setbufline(b, 1, ['foo', 'bar'])) call assert_equal(0, setbufline(b, 1, ['foo', 'bar']))
call assert_equal(['foo'], getbufline(b, 1)) call assert_equal(['foo'], getbufline(b, 1))
call assert_equal(['bar'], getbufline(b, 2)) call assert_equal(['bar'], getbufline(b, '$'))
call assert_equal(['foo', 'bar'], getbufline(b, 1, 2)) call assert_equal(['foo', 'bar'], getbufline(b, 1, 2))
exe "bd!" b exe "bd!" b
call assert_equal([], getbufline(b, 1, 2)) call assert_equal([], getbufline(b, 1, 2))
@@ -81,6 +81,7 @@ func Test_appendbufline()
call setline(1, ['a', 'b', 'c']) call setline(1, ['a', 'b', 'c'])
let b = bufnr('%') let b = bufnr('%')
wincmd w wincmd w
call assert_equal(1, appendbufline(b, -1, ['x']))
call assert_equal(1, appendbufline(b, 4, ['x'])) call assert_equal(1, appendbufline(b, 4, ['x']))
call assert_equal(1, appendbufline(1234, 1, ['x'])) call assert_equal(1, appendbufline(1234, 1, ['x']))
call assert_equal(0, appendbufline(b, 3, ['d', 'e'])) call assert_equal(0, appendbufline(b, 3, ['d', 'e']))
@@ -130,8 +131,11 @@ func Test_deletebufline()
exe "bd!" b exe "bd!" b
call assert_equal(1, deletebufline(b, 1)) call assert_equal(1, deletebufline(b, 1))
call assert_equal(1, deletebufline(-1, 1))
split Xtest split Xtest
call setline(1, ['a', 'b', 'c']) call setline(1, ['a', 'b', 'c'])
call cursor(line('$'), 1)
let b = bufnr('%') let b = bufnr('%')
wincmd w wincmd w
call assert_equal(1, deletebufline(b, 4)) call assert_equal(1, deletebufline(b, 4))

View File

@@ -102,4 +102,14 @@ func Test_cindent_expr()
bw! bw!
endfunc endfunc
func Test_cindent_func()
new
setlocal cindent
call setline(1, ['int main(void)', '{', 'return 0;', '}'])
call assert_equal(cindent(0), -1)
call assert_equal(cindent(3), &sw)
call assert_equal(cindent(line('$')+1), -1)
bwipe!
endfunc
" vim: shiftwidth=2 sts=2 expandtab " vim: shiftwidth=2 sts=2 expandtab

View File

@@ -25,6 +25,12 @@ func Test_move_cursor()
call cursor(9, 1) call cursor(9, 1)
call assert_equal([4, 1, 0, 1], getcurpos()[1:]) call assert_equal([4, 1, 0, 1], getcurpos()[1:])
call setline(1, ["\<TAB>"])
call cursor(1, 1, 1)
call assert_equal([1, 1, 1], getcurpos()[1:3])
call assert_equal(-1, cursor(-1, -1))
quit! quit!
endfunc endfunc

View File

@@ -105,3 +105,8 @@ func Test_symlink_recursive_delete()
bwipe Xdir3/subdir/Xfile bwipe Xdir3/subdir/Xfile
bwipe Xdir4/Xfile bwipe Xdir4/Xfile
endfunc endfunc
func Test_delete_errors()
call assert_fails('call delete('''')', 'E474:')
call assert_fails('call delete(''foo'', 0)', 'E15:')
endfunc

View File

@@ -64,3 +64,12 @@ func Test_expand_sflnum()
call assert_equal(64, str2nr(trim(execute('Flnum')))) call assert_equal(64, str2nr(trim(execute('Flnum'))))
delcommand Flnum delcommand Flnum
endfunc endfunc
func Test_expand()
new
call assert_equal("", expand('%:S'))
call assert_equal('3', expand('<slnum>'))
call assert_equal(['4'], expand('<slnum>', v:false, v:true))
" Don't add any line above this, otherwise <slnum> will change.
quit
endfunc

View File

@@ -13,6 +13,7 @@ func Test_abs()
call assert_equal('inf', string(abs(1.0/0.0))) call assert_equal('inf', string(abs(1.0/0.0)))
call assert_equal('inf', string(abs(-1.0/0.0))) call assert_equal('inf', string(abs(-1.0/0.0)))
call assert_equal('nan', string(abs(0.0/0.0))) call assert_equal('nan', string(abs(0.0/0.0)))
call assert_equal('12', string(abs('12abc')))
call assert_equal('12', string(abs('-12abc'))) call assert_equal('12', string(abs('-12abc')))
call assert_fails("call abs([])", 'E745:') call assert_fails("call abs([])", 'E745:')
call assert_fails("call abs({})", 'E728:') call assert_fails("call abs({})", 'E728:')

View File

@@ -45,9 +45,3 @@ func Test_fnamemodify()
let $HOME = save_home let $HOME = save_home
let &shell = save_shell let &shell = save_shell
endfunc endfunc
func Test_expand()
new
call assert_equal("", expand('%:S'))
quit
endfunc

View File

@@ -52,6 +52,7 @@ func Test_empty()
endif endif
call assert_equal(0, empty(function('Test_empty'))) call assert_equal(0, empty(function('Test_empty')))
call assert_equal(0, empty(function('Test_empty', [0])))
endfunc endfunc
func Test_len() func Test_len()
@@ -869,6 +870,7 @@ func Test_count()
call assert_equal(1, count(l, 'a', 0, 1)) call assert_equal(1, count(l, 'a', 0, 1))
call assert_equal(2, count(l, 'a', 1, 1)) call assert_equal(2, count(l, 'a', 1, 1))
call assert_fails('call count(l, "a", 0, 10)', 'E684:') call assert_fails('call count(l, "a", 0, 10)', 'E684:')
call assert_fails('call count(l, "a", [])', 'E745:')
let d = {1: 'a', 2: 'a', 3: 'A', 4: 'b'} let d = {1: 'a', 2: 'a', 3: 'A', 4: 'b'}
call assert_equal(2, count(d, 'a')) call assert_equal(2, count(d, 'a'))
@@ -896,6 +898,8 @@ func Test_count()
call assert_equal(2, count("foo", "O", 1)) call assert_equal(2, count("foo", "O", 1))
call assert_equal(2, count("fooooo", "oo")) call assert_equal(2, count("fooooo", "oo"))
call assert_equal(0, count("foo", "")) call assert_equal(0, count("foo", ""))
call assert_fails('call count(0, 0)', 'E712:')
endfunc endfunc
func Test_changenr() func Test_changenr()
@@ -1431,3 +1435,23 @@ func Test_readdir()
call delete('Xdir', 'rf') call delete('Xdir', 'rf')
endfunc endfunc
func Test_call()
call assert_equal(3, call('len', [123]))
call assert_fails("call call('len', 123)", 'E714:')
call assert_equal(0, call('', []))
function Mylen() dict
return len(self.data)
endfunction
let mydict = {'data': [0, 1, 2, 3], 'len': function("Mylen")}
call assert_fails("call call('Mylen', [], 0)", 'E715:')
endfunc
func Test_char2nr()
call assert_equal(12354, char2nr('あ', 1))
endfunc
func Test_eventhandler()
call assert_equal(0, eventhandler())
endfunc

View File

@@ -767,6 +767,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
1336,
/**/ /**/
1335, 1335,
/**/ /**/