Mercurial > vim
changeset 7666:8edd1afaf6b7 v7.4.1132
commit https://github.com/vim/vim/commit/99dbe291f55022bd5166c9c3c7967b8693cd9d1b
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Jan 19 13:07:23 2016 +0100
patch 7.4.1132
Problem: Old style tests for the argument list.
Solution: Add more new style tests. (Yegappan Lakshmanan)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 19 Jan 2016 13:15:05 +0100 |
parents | ccc0c96b2eda |
children | 201b9c7e3df7 |
files | src/Makefile src/testdir/Make_all.mak src/testdir/test_arglist.vim src/testdir/test_argument_0count.in src/testdir/test_argument_0count.ok src/testdir/test_argument_count.in src/testdir/test_argument_count.ok src/version.c |
diffstat | 8 files changed, 204 insertions(+), 97 deletions(-) [+] |
line wrap: on
line diff
--- a/src/Makefile +++ b/src/Makefile @@ -1933,8 +1933,6 @@ unittest unittests: $(UNITTEST_TARGETS) # 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 \ @@ -1997,6 +1995,7 @@ test_arglist \ 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)
--- a/src/testdir/Make_all.mak +++ b/src/testdir/Make_all.mak @@ -89,8 +89,6 @@ SCRIPTS_ALL = \ 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 \
--- a/src/testdir/test_arglist.vim +++ b/src/testdir/test_arglist.vim @@ -72,3 +72,204 @@ func Assert_argc(l) 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
deleted file mode 100644 --- a/src/testdir/test_argument_0count.in +++ /dev/null @@ -1,28 +0,0 @@ -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 - -
deleted file mode 100644 --- a/src/testdir/test_argument_0count.ok +++ /dev/null @@ -1,5 +0,0 @@ -added a b c d -added a third b c d -edited a b c d -edited a third b c d -
deleted file mode 100644 --- a/src/testdir/test_argument_count.in +++ /dev/null @@ -1,47 +0,0 @@ -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 - -