To: vim_dev@googlegroups.com Subject: Patch 7.4.1132 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 7.4.1132 Problem: Old style tests for the argument list. Solution: Add more new style tests. (Yegappan Lakshmanan) Files: src/testdir/test_arglist.vim, src/testdir/test_argument_0count.in, src/testdir/test_argument_0count.ok, src/testdir/test_argument_count.in, src/Makefile, src/testdir/test_argument_count.ok, src/testdir/Make_all.mak *** ../vim-7.4.1131/src/testdir/test_arglist.vim 2016-01-17 19:38:56.147067400 +0100 --- src/testdir/test_arglist.vim 2016-01-19 12:55:49.202193912 +0100 *************** *** 72,74 **** --- 72,275 ---- let i += 1 endwhile endfunc + + " Test for [count]argument and [count]argdelete commands + " Ported from the test_argument_count.in test script + function Test_argument() + " Clean the argument list + arga a | %argd + + let save_hidden = &hidden + set hidden + + let g:buffers = [] + augroup TEST + au BufEnter * call add(buffers, expand('%:t')) + augroup END + + argadd a b c d + $argu + $-argu + -argu + 1argu + +2argu + + augroup TEST + au! + augroup END + + call assert_equal(['d', 'c', 'b', 'a', 'c'], g:buffers) + + redir => result + ar + redir END + call assert_true(result =~# 'a b \[c] d') + + .argd + call assert_equal(['a', 'b', 'd'], argv()) + + -argd + call assert_equal(['a', 'd'], argv()) + + $argd + call assert_equal(['a'], argv()) + + 1arga c + 1arga b + $argu + $arga x + call assert_equal(['a', 'b', 'c', 'x'], argv()) + + 0arga Y + call assert_equal(['Y', 'a', 'b', 'c', 'x'], argv()) + + %argd + call assert_equal([], argv()) + + arga a b c d e f + 2,$-argd + call assert_equal(['a', 'f'], argv()) + + let &hidden = save_hidden + + " Setting argument list should fail when the current buffer has unsaved + " changes + %argd + enew! + set modified + call assert_fails('args x y z', 'E37:') + args! x y z + call assert_equal(['x', 'y', 'z'], argv()) + call assert_equal('x', expand('%:t')) + + last | enew | argu + call assert_equal('z', expand('%:t')) + + %argdelete + call assert_fails('argument', 'E163:') + endfunction + + " Test for 0argadd and 0argedit + " Ported from the test_argument_0count.in test script + function Test_zero_argadd() + " Clean the argument list + arga a | %argd + + arga a b c d + 2argu + 0arga added + call assert_equal(['added', 'a', 'b', 'c', 'd'], argv()) + + 2argu + arga third + call assert_equal(['added', 'a', 'third', 'b', 'c', 'd'], argv()) + + %argd + arga a b c d + 2argu + 0arge edited + call assert_equal(['edited', 'a', 'b', 'c', 'd'], argv()) + + 2argu + arga third + call assert_equal(['edited', 'a', 'third', 'b', 'c', 'd'], argv()) + endfunction + + function Reset_arglist() + args a | %argd + endfunction + + " Test for argc() + function Test_argc() + call Reset_arglist() + call assert_equal(0, argc()) + argadd a b + call assert_equal(2, argc()) + endfunction + + " Test for arglistid() + function Test_arglistid() + call Reset_arglist() + arga a b + call assert_equal(0, arglistid()) + split + arglocal + call assert_equal(1, arglistid()) + tabnew | tabfirst + call assert_equal(0, arglistid(2)) + call assert_equal(1, arglistid(1, 1)) + call assert_equal(0, arglistid(2, 1)) + call assert_equal(1, arglistid(1, 2)) + tabonly | only | enew! + argglobal + call assert_equal(0, arglistid()) + endfunction + + " Test for argv() + function Test_argv() + call Reset_arglist() + call assert_equal([], argv()) + call assert_equal("", argv(2)) + argadd a b c d + call assert_equal('c', argv(2)) + endfunction + + " Test for the :argedit command + function Test_argedit() + call Reset_arglist() + argedit a + call assert_equal(['a'], argv()) + call assert_equal('a', expand('%:t')) + argedit b + call assert_equal(['a', 'b'], argv()) + call assert_equal('b', expand('%:t')) + argedit a + call assert_equal(['a', 'b'], argv()) + call assert_equal('a', expand('%:t')) + call assert_fails('argedit a b', 'E172:') + argedit c + call assert_equal(['a', 'c', 'b'], argv()) + 0argedit x + call assert_equal(['x', 'a', 'c', 'b'], argv()) + enew! | set modified + call assert_fails('argedit y', 'E37:') + argedit! y + call assert_equal(['x', 'y', 'a', 'c', 'b'], argv()) + %argd + endfunction + + " Test for the :argdelete command + function Test_argdelete() + call Reset_arglist() + args aa a aaa b bb + argdelete a* + call assert_equal(['b', 'bb'], argv()) + call assert_equal('aa', expand('%:t')) + last + argdelete % + call assert_equal(['b'], argv()) + call assert_fails('argdelete', 'E471:') + call assert_fails('1,100argdelete', 'E16:') + %argd + endfunction + + " Tests for the :next, :prev, :first, :last, :rewind commands + function Test_argpos() + call Reset_arglist() + args a b c d + last + call assert_equal(3, argidx()) + call assert_fails('next', 'E165:') + prev + call assert_equal(2, argidx()) + Next + call assert_equal(1, argidx()) + first + call assert_equal(0, argidx()) + call assert_fails('prev', 'E164:') + 3next + call assert_equal(3, argidx()) + rewind + call assert_equal(0, argidx()) + %argd + endfunction *** ../vim-7.4.1131/src/testdir/test_argument_0count.in 2015-01-20 19:30:46.669275579 +0100 --- src/testdir/test_argument_0count.in 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,28 **** - Tests for :0argadd and :0argedit vim: set ft=vim : - - STARTTEST - :so small.vim - :let arglists = [] - :%argd - :arga a b c d - :2argu - :0arga added - :call add(arglists, argv()) - :2argu - :arga third - :call add(arglists, argv()) - :%argd - :arga a b c d - :2argu - :0arge edited - :call add(arglists, argv()) - :2argu - :arga third - :call add(arglists, argv()) - :e! test.out - :call append(0, map(copy(arglists), 'join(v:val, " ")')) - :w - :qa! - ENDTEST - - --- 0 ---- *** ../vim-7.4.1131/src/testdir/test_argument_0count.ok 2015-01-20 19:30:46.669275579 +0100 --- src/testdir/test_argument_0count.ok 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,5 **** - added a b c d - added a third b c d - edited a b c d - edited a third b c d - --- 0 ---- *** ../vim-7.4.1131/src/testdir/test_argument_count.in 2015-01-07 15:57:13.145559792 +0100 --- src/testdir/test_argument_count.in 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,47 **** - Tests for :[count]argument! and :[count]argdelete vim: set ft=vim : - - STARTTEST - :so small.vim - :%argd - :argadd a b c d - :set hidden - :let buffers = [] - :augroup TEST - :au BufEnter * call add(buffers, expand('%:t')) - :augroup END - :$argu - :$-argu - :-argu - :1argu - :+2argu - :augroup TEST - :au! - :augroup END - :let arglists = [] - :.argd - :call add(arglists, argv()) - :-argd - :call add(arglists, argv()) - :$argd - :call add(arglists, argv()) - :1arga c - :1arga b - :$argu - :$arga x - :call add(arglists, argv()) - :0arga Y - :call add(arglists, argv()) - :%argd - :call add(arglists, argv()) - :arga a b c d e f - :2,$-argd - :call add(arglists, argv()) - :e! test.out - :call append(0, buffers) - :let lnr = line('$') - :call append(lnr, map(copy(arglists), 'join(v:val, " ")')) - :w - :qa! - ENDTEST - - --- 0 ---- *** ../vim-7.4.1131/src/Makefile 2016-01-17 22:05:09.282375491 +0100 --- src/Makefile 2016-01-19 12:58:05.700725473 +0100 *************** *** 1933,1940 **** # Run individual OLD style test, assuming that Vim was already compiled. test1 \ - test_argument_0count \ - test_argument_count \ test_autocmd_option \ test_autoformat_join \ test_breakindent \ --- 1933,1938 ---- *************** *** 1997,2002 **** --- 1995,2001 ---- test_sort \ test_undolevels \ test_unlet \ + test_viminfo \ test_viml \ test_alot: cd testdir; rm -f $@.res test.log messages; $(MAKE) -f Makefile $@.res VIMPROG=../$(VIMTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE) *** ../vim-7.4.1131/src/testdir/test_argument_count.ok 2015-01-07 15:57:13.145559792 +0100 --- src/testdir/test_argument_count.ok 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,13 **** - d - c - b - a - c - - a b d - a d - a - a b c x - Y a b c x - - a f --- 0 ---- *** ../vim-7.4.1131/src/testdir/Make_all.mak 2016-01-18 23:28:44.161810727 +0100 --- src/testdir/Make_all.mak 2016-01-19 12:57:10.765316473 +0100 *************** *** 89,96 **** test106.out \ test107.out \ test108.out \ - test_argument_0count.out \ - test_argument_count.out \ test_autocmd_option.out \ test_autoformat_join.out \ test_breakindent.out \ --- 89,94 ---- *** ../vim-7.4.1131/src/version.c 2016-01-18 23:28:44.161810727 +0100 --- src/version.c 2016-01-19 13:06:05.383564523 +0100 *************** *** 743,744 **** --- 743,746 ---- { /* Add new patch number below this line */ + /**/ + 1132, /**/ -- If someone questions your market projections, simply point out that your target market is "People who are nuts" and "People who will buy any damn thing". Nobody is going to tell you there aren't enough of those people to go around. (Scott Adams - The Dilbert principle) /// 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 ///