To: vim_dev@googlegroups.com Subject: Patch 8.0.0019 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ 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. Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/test_alot.vim, src/testdir/test_autocmd.vim, src/testdir/test_command_count.in, src/testdir/test_command_count.ok, src/testdir/test_command_count.vim *** ../vim-8.0.0018/src/Makefile 2016-09-26 20:14:49.921906772 +0200 --- src/Makefile 2016-09-29 19:23:13.153274891 +0200 *************** *** 2028,2034 **** test_breakindent \ test_changelist \ test_close_count \ - test_command_count \ test_comparators \ test_erasebackword \ test_eval \ --- 2028,2033 ---- *************** *** 2066,2071 **** --- 2065,2071 ---- test_channel \ test_charsearch \ test_cmdline \ + test_command_count \ test_crypt \ test_cscope \ test_cursor_func \ *** ../vim-8.0.0018/src/testdir/Make_all.mak 2016-09-26 20:14:49.921906772 +0200 --- src/testdir/Make_all.mak 2016-09-29 19:11:33.650159645 +0200 *************** *** 79,85 **** test_breakindent.out \ test_changelist.out \ test_close_count.out \ - test_command_count.out \ test_comparators.out \ test_erasebackword.out \ test_eval.out \ --- 79,84 ---- *** ../vim-8.0.0018/src/testdir/test_alot.vim 2016-09-11 14:34:48.000000000 +0200 --- src/testdir/test_alot.vim 2016-09-29 19:11:33.650159645 +0200 *************** *** 3,8 **** --- 3,9 ---- 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 *** ../vim-8.0.0018/src/testdir/test_autocmd.vim 2016-09-08 22:06:01.000000000 +0200 --- src/testdir/test_autocmd.vim 2016-09-29 19:11:33.650159645 +0200 *************** *** 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,259 **** --- 262,270 ---- " 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. *** ../vim-8.0.0018/src/testdir/test_command_count.in 2015-02-27 20:03:15.000000000 +0100 --- src/testdir/test_command_count.in 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,158 **** - 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 '..' '.) - :com -range -addr=arguments RangeArguments :call add(g:lines, 'RangeArguments '..' '.) - :com -range=% -addr=arguments RangeArgumentsAll :call add(g:lines, 'RangeArgumentsAll '..' '.) - :com -range -addr=loaded_buffers RangeLoadedBuffers :call add(g:lines, 'RangeLoadedBuffers '..' '.) - :com -range=% -addr=loaded_buffers RangeLoadedBuffersAll :call add(g:lines, 'RangeLoadedBuffersAll '..' '.) - :com -range -addr=buffers RangeBuffers :call add(g:lines, 'RangeBuffers '..' '.) - :com -range=% -addr=buffers RangeBuffersAll :call add(g:lines, 'RangeBuffersAll '..' '.) - :com -range -addr=windows RangeWindows :call add(g:lines, 'RangeWindows '..' '.) - :com -range=% -addr=windows RangeWindowsAll :call add(g:lines, 'RangeWindowsAll '..' '.) - :com -range -addr=tabs RangeTabs :call add(g:lines, 'RangeTabs '..' '.) - :com -range=% -addr=tabs RangeTabsAll :call add(g:lines, 'RangeTabsAll '..' '.) - :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 '..' '.) - :'<,'>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 - - --- 0 ---- *** ../vim-8.0.0018/src/testdir/test_command_count.ok 2015-02-27 20:03:15.000000000 +0100 --- src/testdir/test_command_count.ok 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,38 **** - 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 --- 0 ---- *** ../vim-8.0.0018/src/testdir/test_command_count.vim 2016-09-29 20:53:54.971440078 +0200 --- src/testdir/test_command_count.vim 2016-09-29 20:49:32.317263612 +0200 *************** *** 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 = [, ] + command! -range=% -addr=loaded_buffers RangeLoadedBuffersAll :let lines = [, ] + command! -range -addr=buffers RangeBuffers :let lines = [, ] + command! -range=% -addr=buffers RangeBuffersAll :let lines = [, ] + + .,$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 = [, ] + command! -range=% -addr=arguments RangeArgumentsAll :let lines = [, ] + .-,$-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 = [, ] + .,$RangeWindows + call assert_equal([3, 5], lines) + %RangeWindows + call assert_equal([1, 5], lines) + delcommand RangeWindows + + command! -range=% -addr=windows RangeWindowsAll :let lines = [, ] + 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 = [, ] + .,$RangeTabs + call assert_equal([2, 5], lines) + %RangeTabs + call assert_equal([1, 5], lines) + delcommand RangeTabs + + command! -range=% -addr=tabs RangeTabsAll :let lines = [, ] + RangeTabsAll + call assert_equal([1, 5], lines) + delcommand RangeTabsAll + 1tabonly + + s/\n/\r\r\r\r\r/ + 2ma< + $-ma> + command! -range=% RangeLines :let lines = [, ] + '<,'>RangeLines + call assert_equal([2, 5], lines) + delcommand RangeLines + + command! -range=% -buffer LocalRangeLines :let lines = [, ] + '<,'>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 *** ../vim-8.0.0018/src/version.c 2016-09-29 15:18:51.359768012 +0200 --- src/version.c 2016-09-29 20:50:17.684948652 +0200 *************** *** 766,767 **** --- 766,769 ---- { /* Add new patch number below this line */ + /**/ + 19, /**/ -- A computer programmer is a device for turning requirements into undocumented features. It runs on cola, pizza and Dilbert cartoons. Bram Moolenaar /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 ///