forked from aniani/vim
		
	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:
		| @@ -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, | ||||
| /**/ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user