]> granicus.if.org Git - vim/commitdiff
patch 7.4.1132 v7.4.1132
authorBram Moolenaar <Bram@vim.org>
Tue, 19 Jan 2016 12:07:23 +0000 (13:07 +0100)
committerBram Moolenaar <Bram@vim.org>
Tue, 19 Jan 2016 12:07:23 +0000 (13:07 +0100)
Problem:    Old style tests for the argument list.
Solution:   Add more new style tests. (Yegappan Lakshmanan)

src/Makefile
src/testdir/Make_all.mak
src/testdir/test_arglist.vim
src/testdir/test_argument_0count.in [deleted file]
src/testdir/test_argument_0count.ok [deleted file]
src/testdir/test_argument_count.in [deleted file]
src/testdir/test_argument_count.ok [deleted file]
src/version.c

index 7b0cd297fdd17c351d7aea3546e0f045c874ee01..f930834fafa2efcc242b63bb370de52eca2a0fa2 100644 (file)
@@ -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)
index a5b8cd365bc94dae250b7b303e1bf1372e4250d9..526a43534b625d0246edfe763671106ae0d94ecc 100644 (file)
@@ -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 \
index 522631741a10450c2313228eeed03ee2a15b9e53..af92f1565640242ec6eb925a85c4f5300bd12c2f 100644 (file)
@@ -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
diff --git a/src/testdir/test_argument_0count.in b/src/testdir/test_argument_0count.in
deleted file mode 100644 (file)
index 88317fa..0000000
+++ /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
-
-
diff --git a/src/testdir/test_argument_0count.ok b/src/testdir/test_argument_0count.ok
deleted file mode 100644 (file)
index ee5daea..0000000
+++ /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
-
diff --git a/src/testdir/test_argument_count.in b/src/testdir/test_argument_count.in
deleted file mode 100644 (file)
index db7eadb..0000000
+++ /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
-
-
diff --git a/src/testdir/test_argument_count.ok b/src/testdir/test_argument_count.ok
deleted file mode 100644 (file)
index f515626..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-d
-c
-b
-a
-c
-
-a b d
-a d
-a
-a b c x
-Y a b c x
-
-a f
index 0b595183fb73ed20b7f4ffd03cca409e3333e67e..919f7b72c506e2c5638f1e3d19945e54c8f87ce9 100644 (file)
@@ -741,6 +741,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1132,
 /**/
     1131,
 /**/