mirror of
https://github.com/vim/vim.git
synced 2025-09-07 22:03:36 -04:00
patch 8.0.0019
Problem: Test_command_count is old style. Solution: Turn it into a new style test. (Naruhiko Nishino) Use more assert functions.
This commit is contained in:
parent
b9c31e71f5
commit
b3435b0a3a
@ -2028,7 +2028,6 @@ test1 \
|
||||
test_breakindent \
|
||||
test_changelist \
|
||||
test_close_count \
|
||||
test_command_count \
|
||||
test_comparators \
|
||||
test_erasebackword \
|
||||
test_eval \
|
||||
@ -2066,6 +2065,7 @@ test_arglist \
|
||||
test_channel \
|
||||
test_charsearch \
|
||||
test_cmdline \
|
||||
test_command_count \
|
||||
test_crypt \
|
||||
test_cscope \
|
||||
test_cursor_func \
|
||||
|
@ -79,7 +79,6 @@ SCRIPTS_ALL = \
|
||||
test_breakindent.out \
|
||||
test_changelist.out \
|
||||
test_close_count.out \
|
||||
test_command_count.out \
|
||||
test_comparators.out \
|
||||
test_erasebackword.out \
|
||||
test_eval.out \
|
||||
|
@ -3,6 +3,7 @@
|
||||
|
||||
source test_assign.vim
|
||||
source test_autocmd.vim
|
||||
source test_command_count.vim
|
||||
source test_cursor_func.vim
|
||||
source test_delete.vim
|
||||
source test_execute_func.vim
|
||||
|
@ -1,5 +1,13 @@
|
||||
" Tests for autocommands
|
||||
|
||||
function! s:cleanup_buffers() abort
|
||||
for bnr in range(1, bufnr('$'))
|
||||
if bufloaded(bnr) && bufnr('%') != bnr
|
||||
execute 'bd! ' . bnr
|
||||
endif
|
||||
endfor
|
||||
endfunction
|
||||
|
||||
func Test_vim_did_enter()
|
||||
call assert_false(v:vim_did_enter)
|
||||
|
||||
@ -254,6 +262,9 @@ endfunc
|
||||
" Tests for autocommands on :close command.
|
||||
" This used to be in test13.
|
||||
func Test_three_windows()
|
||||
" Clean up buffers, because in some cases this function fails.
|
||||
call s:cleanup_buffers()
|
||||
|
||||
" Write three files and open them, each in a window.
|
||||
" Then go to next window, with autocommand that deletes the previous one.
|
||||
" Do this twice, writing the file.
|
||||
|
@ -1,158 +0,0 @@
|
||||
Test for user command counts vim: set ft=vim :
|
||||
|
||||
STARTTEST
|
||||
:so small.vim
|
||||
:lang C
|
||||
:let g:lines = []
|
||||
:com -range=% RangeLines :call add(g:lines, 'RangeLines '.<line1>.' '.<line2>)
|
||||
:com -range -addr=arguments RangeArguments :call add(g:lines, 'RangeArguments '.<line1>.' '.<line2>)
|
||||
:com -range=% -addr=arguments RangeArgumentsAll :call add(g:lines, 'RangeArgumentsAll '.<line1>.' '.<line2>)
|
||||
:com -range -addr=loaded_buffers RangeLoadedBuffers :call add(g:lines, 'RangeLoadedBuffers '.<line1>.' '.<line2>)
|
||||
:com -range=% -addr=loaded_buffers RangeLoadedBuffersAll :call add(g:lines, 'RangeLoadedBuffersAll '.<line1>.' '.<line2>)
|
||||
:com -range -addr=buffers RangeBuffers :call add(g:lines, 'RangeBuffers '.<line1>.' '.<line2>)
|
||||
:com -range=% -addr=buffers RangeBuffersAll :call add(g:lines, 'RangeBuffersAll '.<line1>.' '.<line2>)
|
||||
:com -range -addr=windows RangeWindows :call add(g:lines, 'RangeWindows '.<line1>.' '.<line2>)
|
||||
:com -range=% -addr=windows RangeWindowsAll :call add(g:lines, 'RangeWindowsAll '.<line1>.' '.<line2>)
|
||||
:com -range -addr=tabs RangeTabs :call add(g:lines, 'RangeTabs '.<line1>.' '.<line2>)
|
||||
:com -range=% -addr=tabs RangeTabsAll :call add(g:lines, 'RangeTabsAll '.<line1>.' '.<line2>)
|
||||
:set hidden
|
||||
:arga a b c d
|
||||
:argdo echo "loading buffers"
|
||||
:argu 3
|
||||
:.-,$-RangeArguments
|
||||
:%RangeArguments
|
||||
:RangeArgumentsAll
|
||||
:N
|
||||
:.RangeArguments
|
||||
:split|split|split|split
|
||||
:3wincmd w
|
||||
:.,$RangeWindows
|
||||
:%RangeWindows
|
||||
:RangeWindowsAll
|
||||
:only
|
||||
:blast|bd
|
||||
:.,$RangeLoadedBuffers
|
||||
:%RangeLoadedBuffers
|
||||
:RangeLoadedBuffersAll
|
||||
:.,$RangeBuffers
|
||||
:%RangeBuffers
|
||||
:RangeBuffersAll
|
||||
:tabe|tabe|tabe|tabe
|
||||
:normal 2gt
|
||||
:.,$RangeTabs
|
||||
:%RangeTabs
|
||||
:RangeTabsAll
|
||||
:1tabonly
|
||||
:s/\n/\r\r\r\r\r/
|
||||
:2ma<
|
||||
:$-ma>
|
||||
:'<,'>RangeLines
|
||||
:com -range=% -buffer LocalRangeLines :call add(g:lines, 'LocalRangeLines '.<line1>.' '.<line2>)
|
||||
:'<,'>LocalRangeLines
|
||||
:b1
|
||||
ENDTEST
|
||||
|
||||
STARTTEST
|
||||
:call add(g:lines, '')
|
||||
:%argd
|
||||
:arga a b c d
|
||||
:let v:errmsg = ''
|
||||
:5argu
|
||||
:call add(g:lines, '5argu ' . v:errmsg)
|
||||
:$argu
|
||||
:call add(g:lines, '4argu ' . expand('%:t'))
|
||||
:let v:errmsg = ''
|
||||
:1argu
|
||||
:call add(g:lines, '1argu ' . expand('%:t'))
|
||||
:let v:errmsg = ''
|
||||
:100b
|
||||
:call add(g:lines, '100b ' . v:errmsg)
|
||||
:split|split|split|split
|
||||
:let v:errmsg = ''
|
||||
:0close
|
||||
:call add(g:lines, '0close ' . v:errmsg)
|
||||
:$wincmd w
|
||||
:$close
|
||||
:call add(g:lines, '$close ' . winnr())
|
||||
:let v:errmsg = ''
|
||||
:$+close
|
||||
:call add(g:lines, '$+close ' . v:errmsg)
|
||||
:$tabe
|
||||
:call add(g:lines, '$tabe ' . tabpagenr())
|
||||
:let v:errmsg = ''
|
||||
:$+tabe
|
||||
:call add(g:lines, '$+tabe ' . v:errmsg)
|
||||
:only!
|
||||
:e x
|
||||
:0tabm
|
||||
:normal 1gt
|
||||
:call add(g:lines, '0tabm ' . expand('%:t'))
|
||||
:tabonly!
|
||||
:only!
|
||||
:e! test.out
|
||||
:call append(0, g:lines)
|
||||
:unlet g:lines
|
||||
:w|bd
|
||||
:b1
|
||||
ENDTEST
|
||||
|
||||
STARTTEST
|
||||
:let g:lines = []
|
||||
:func BufStatus()
|
||||
: call add(g:lines, 'aaa: ' . buflisted(g:buf_aaa) . ' bbb: ' . buflisted(g:buf_bbb) . ' ccc: ' . buflisted(g:buf_ccc))
|
||||
:endfunc
|
||||
:se nohidden
|
||||
:e aaa
|
||||
:let buf_aaa = bufnr('%')
|
||||
:e bbb
|
||||
:let buf_bbb = bufnr('%')
|
||||
:e ccc
|
||||
:let buf_ccc = bufnr('%')
|
||||
:b1
|
||||
:call BufStatus()
|
||||
:exe buf_bbb . "," . buf_ccc . "bdelete"
|
||||
:call BufStatus()
|
||||
:exe buf_aaa . "bdelete"
|
||||
:call BufStatus()
|
||||
:e! test.out
|
||||
:call append('$', g:lines)
|
||||
:unlet g:lines
|
||||
:delfunc BufStatus
|
||||
:w|bd
|
||||
:b1
|
||||
ENDTEST
|
||||
|
||||
STARTTEST
|
||||
:se hidden
|
||||
:only!
|
||||
:let g:lines = []
|
||||
:%argd
|
||||
:arga a b c d e f
|
||||
:3argu
|
||||
:let args = ''
|
||||
:.,$-argdo let args .= ' '.expand('%')
|
||||
:call add(g:lines, 'argdo:' . args)
|
||||
:split|split|split|split
|
||||
:2wincmd w
|
||||
:let windows = ''
|
||||
:.,$-windo let windows .= ' '.winnr()
|
||||
:call add(g:lines, 'windo:'. windows)
|
||||
:b2
|
||||
:let buffers = ''
|
||||
:.,$-bufdo let buffers .= ' '.bufnr('%')
|
||||
:call add(g:lines, 'bufdo:' . buffers)
|
||||
:3bd
|
||||
:let buffers = ''
|
||||
:3,7bufdo let buffers .= ' '.bufnr('%')
|
||||
:call add(g:lines, 'bufdo:' . buffers)
|
||||
:tabe|tabe|tabe|tabe
|
||||
:normal! 2gt
|
||||
:let tabpages = ''
|
||||
:.,$-tabdo let tabpages .= ' '.tabpagenr()
|
||||
:call add(g:lines, 'tabdo:' . tabpages)
|
||||
:e! test.out
|
||||
:call append('$', g:lines)
|
||||
:w|qa!
|
||||
ENDTEST
|
||||
|
||||
|
@ -1,38 +0,0 @@
|
||||
RangeArguments 2 4
|
||||
RangeArguments 1 5
|
||||
RangeArgumentsAll 1 5
|
||||
RangeArguments 2 2
|
||||
RangeWindows 3 5
|
||||
RangeWindows 1 5
|
||||
RangeWindowsAll 1 5
|
||||
RangeLoadedBuffers 2 4
|
||||
RangeLoadedBuffers 1 4
|
||||
RangeLoadedBuffersAll 1 4
|
||||
RangeBuffers 2 5
|
||||
RangeBuffers 1 5
|
||||
RangeBuffersAll 1 5
|
||||
RangeTabs 2 5
|
||||
RangeTabs 1 5
|
||||
RangeTabsAll 1 5
|
||||
RangeLines 2 5
|
||||
LocalRangeLines 2 5
|
||||
|
||||
5argu E16: Invalid range
|
||||
4argu d
|
||||
1argu a
|
||||
100b E16: Invalid range
|
||||
0close
|
||||
$close 3
|
||||
$+close E16: Invalid range
|
||||
$tabe 2
|
||||
$+tabe E16: Invalid range
|
||||
0tabm x
|
||||
|
||||
aaa: 1 bbb: 1 ccc: 1
|
||||
aaa: 1 bbb: 0 ccc: 0
|
||||
aaa: 0 bbb: 0 ccc: 0
|
||||
argdo: c d e
|
||||
windo: 2 3 4
|
||||
bufdo: 2 3 4 5 6 7 8 9 10 15
|
||||
bufdo: 4 5 6 7
|
||||
tabdo: 2 3 4
|
191
src/testdir/test_command_count.vim
Normal file
191
src/testdir/test_command_count.vim
Normal file
@ -0,0 +1,191 @@
|
||||
" Test for user command counts.
|
||||
|
||||
func Test_command_count_0()
|
||||
set hidden
|
||||
set noswapfile
|
||||
|
||||
split DoesNotExistEver
|
||||
let lastbuf = bufnr('$')
|
||||
call setline(1, 'asdf')
|
||||
quit!
|
||||
|
||||
command! -range -addr=loaded_buffers RangeLoadedBuffers :let lines = [<line1>, <line2>]
|
||||
command! -range=% -addr=loaded_buffers RangeLoadedBuffersAll :let lines = [<line1>, <line2>]
|
||||
command! -range -addr=buffers RangeBuffers :let lines = [<line1>, <line2>]
|
||||
command! -range=% -addr=buffers RangeBuffersAll :let lines = [<line1>, <line2>]
|
||||
|
||||
.,$RangeLoadedBuffers
|
||||
call assert_equal([1, 1], lines)
|
||||
%RangeLoadedBuffers
|
||||
call assert_equal([1, 1], lines)
|
||||
RangeLoadedBuffersAll
|
||||
call assert_equal([1, 1], lines)
|
||||
.,$RangeBuffers
|
||||
call assert_equal([1, lastbuf], lines)
|
||||
%RangeBuffers
|
||||
call assert_equal([1, lastbuf], lines)
|
||||
RangeBuffersAll
|
||||
call assert_equal([1, lastbuf], lines)
|
||||
|
||||
delcommand RangeLoadedBuffers
|
||||
delcommand RangeLoadedBuffersAll
|
||||
delcommand RangeBuffers
|
||||
delcommand RangeBuffersAll
|
||||
|
||||
set hidden&
|
||||
set swapfile&
|
||||
endfunc
|
||||
|
||||
func Test_command_count_1()
|
||||
silent! %argd
|
||||
arga a b c d e
|
||||
argdo echo "loading buffers"
|
||||
argu 3
|
||||
command! -range -addr=arguments RangeArguments :let lines = [<line1>, <line2>]
|
||||
command! -range=% -addr=arguments RangeArgumentsAll :let lines = [<line1>, <line2>]
|
||||
.-,$-RangeArguments
|
||||
call assert_equal([2, 4], lines)
|
||||
%RangeArguments
|
||||
call assert_equal([1, 5], lines)
|
||||
RangeArgumentsAll
|
||||
call assert_equal([1, 5], lines)
|
||||
N
|
||||
.RangeArguments
|
||||
call assert_equal([2, 2], lines)
|
||||
delcommand RangeArguments
|
||||
delcommand RangeArgumentsAll
|
||||
|
||||
split|split|split|split
|
||||
3wincmd w
|
||||
command! -range -addr=windows RangeWindows :let lines = [<line1>, <line2>]
|
||||
.,$RangeWindows
|
||||
call assert_equal([3, 5], lines)
|
||||
%RangeWindows
|
||||
call assert_equal([1, 5], lines)
|
||||
delcommand RangeWindows
|
||||
|
||||
command! -range=% -addr=windows RangeWindowsAll :let lines = [<line1>, <line2>]
|
||||
RangeWindowsAll
|
||||
call assert_equal([1, 5], lines)
|
||||
delcommand RangeWindowsAll
|
||||
only
|
||||
blast|bd
|
||||
|
||||
tabe|tabe|tabe|tabe
|
||||
normal 2gt
|
||||
command! -range -addr=tabs RangeTabs :let lines = [<line1>, <line2>]
|
||||
.,$RangeTabs
|
||||
call assert_equal([2, 5], lines)
|
||||
%RangeTabs
|
||||
call assert_equal([1, 5], lines)
|
||||
delcommand RangeTabs
|
||||
|
||||
command! -range=% -addr=tabs RangeTabsAll :let lines = [<line1>, <line2>]
|
||||
RangeTabsAll
|
||||
call assert_equal([1, 5], lines)
|
||||
delcommand RangeTabsAll
|
||||
1tabonly
|
||||
|
||||
s/\n/\r\r\r\r\r/
|
||||
2ma<
|
||||
$-ma>
|
||||
command! -range=% RangeLines :let lines = [<line1>, <line2>]
|
||||
'<,'>RangeLines
|
||||
call assert_equal([2, 5], lines)
|
||||
delcommand RangeLines
|
||||
|
||||
command! -range=% -buffer LocalRangeLines :let lines = [<line1>, <line2>]
|
||||
'<,'>LocalRangeLines
|
||||
call assert_equal([2, 5], lines)
|
||||
delcommand LocalRangeLines
|
||||
endfunc
|
||||
|
||||
func Test_command_count_2()
|
||||
silent! %argd
|
||||
arga a b c d
|
||||
call assert_fails('5argu', 'E16:')
|
||||
|
||||
$argu
|
||||
call assert_equal('d', expand('%:t'))
|
||||
|
||||
1argu
|
||||
call assert_equal('a', expand('%:t'))
|
||||
|
||||
call assert_fails('300b', 'E16:')
|
||||
|
||||
split|split|split|split
|
||||
0close
|
||||
|
||||
$wincmd w
|
||||
$close
|
||||
call assert_equal(3, winnr())
|
||||
|
||||
call assert_fails('$+close', 'E16:')
|
||||
|
||||
$tabe
|
||||
call assert_equal(2, tabpagenr())
|
||||
|
||||
call assert_fails('$+tabe', 'E16:')
|
||||
|
||||
only!
|
||||
e x
|
||||
0tabm
|
||||
normal 1gt
|
||||
call assert_equal('x', expand('%:t'))
|
||||
|
||||
tabonly!
|
||||
only!
|
||||
endfunc
|
||||
|
||||
func Test_command_count_3()
|
||||
se nohidden
|
||||
e aaa
|
||||
let buf_aaa = bufnr('%')
|
||||
e bbb
|
||||
let buf_bbb = bufnr('%')
|
||||
e ccc
|
||||
let buf_ccc = bufnr('%')
|
||||
buf 1
|
||||
call assert_equal([1, 1, 1], [buflisted(buf_aaa), buflisted(buf_bbb), buflisted(buf_ccc)])
|
||||
exe buf_bbb . "," . buf_ccc . "bdelete"
|
||||
call assert_equal([1, 0, 0], [buflisted(buf_aaa), buflisted(buf_bbb), buflisted(buf_ccc)])
|
||||
exe buf_aaa . "bdelete"
|
||||
call assert_equal([0, 0, 0], [buflisted(buf_aaa), buflisted(buf_bbb), buflisted(buf_ccc)])
|
||||
endfunc
|
||||
|
||||
func Test_command_count_4()
|
||||
%argd
|
||||
let bufnr = bufnr('$') + 1
|
||||
arga aa bb cc dd ee ff
|
||||
3argu
|
||||
let args = []
|
||||
.,$-argdo call add(args, expand('%'))
|
||||
call assert_equal(['cc', 'dd', 'ee'], args)
|
||||
|
||||
" create windows to get 5
|
||||
split|split|split|split
|
||||
2wincmd w
|
||||
let windows = []
|
||||
.,$-windo call add(windows, winnr())
|
||||
call assert_equal([2, 3, 4], windows)
|
||||
only!
|
||||
|
||||
exe bufnr . 'buf'
|
||||
let buffers = []
|
||||
.,$-bufdo call add(buffers, bufnr('%'))
|
||||
call assert_equal([bufnr, bufnr + 1, bufnr + 2, bufnr + 3, bufnr + 4], buffers)
|
||||
|
||||
exe (bufnr + 3) . 'bdel'
|
||||
let buffers = []
|
||||
exe (bufnr + 2) . ',' . (bufnr + 5) . "bufdo call add(buffers, bufnr('%'))"
|
||||
call assert_equal([bufnr + 2, bufnr + 4, bufnr + 5], buffers)
|
||||
|
||||
" create tabpages to get 5
|
||||
tabe|tabe|tabe|tabe
|
||||
normal! 2gt
|
||||
let tabpages = []
|
||||
.,$-tabdo call add(tabpages, tabpagenr())
|
||||
call assert_equal([2, 3, 4], tabpages)
|
||||
tabonly!
|
||||
bwipe!
|
||||
endfunc
|
@ -764,6 +764,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
19,
|
||||
/**/
|
||||
18,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user