Patch 8.2.0261
Problem: Some code not covered by tests.
Solution: Add test cases. (Yegappan Lakshmanan, closes #5645)
Files: src/testdir/test_buffer.vim, src/testdir/test_cmdline.vim,
src/testdir/test_exists.vim, src/testdir/test_filechanged.vim,
src/testdir/test_fileformat.vim, src/testdir/test_mapping.vim,
src/testdir/test_marks.vim, src/testdir/test_normal.vim,
src/testdir/test_plus_arg_edit.vim, src/testdir/test_quickfix.vim,
src/testdir/test_tabpage.vim, src/testdir/test_visual.vim,
src/testdir/test_window_cmd.vim, src/testdir/test_writefile.vim
*** ../vim-8.2.0260/src/testdir/test_buffer.vim 2020-02-11 22:03:43.038846226
+0100
--- src/testdir/test_buffer.vim 2020-02-16 13:28:49.060830136 +0100
***************
*** 61,66 ****
--- 61,157 ----
call delete('b2')
call delete('b3')
call delete('b4')
+
+ call assert_fails('1,4bunload', 'E16:')
+ call assert_fails(',100bunload', 'E16:')
+
+ " Use a try-catch for this test. When assert_fails() is used for this
+ " test, the command fails with E515: instead of E90:
+ let caught_E90 = 0
+ try
+ $bunload
+ catch /E90:/
+ let caught_E90 = 1
+ endtry
+ call assert_equal(1, caught_E90)
+ call assert_fails('$bunload', 'E515:')
+ endfunc
+
+ " Test for :buffer, :bnext, :bprevious, :brewind, :blast and :bmodified
+ " commands
+ func Test_buflist_browse()
+ %bwipe!
+ call assert_fails('buffer 1000', 'E86:')
+
+ call writefile(['foo1', 'foo2', 'foo3', 'foo4'], 'Xfile1')
+ call writefile(['bar1', 'bar2', 'bar3', 'bar4'], 'Xfile2')
+ call writefile(['baz1', 'baz2', 'baz3', 'baz4'], 'Xfile3')
+ edit Xfile1
+ let b1 = bufnr()
+ edit Xfile2
+ let b2 = bufnr()
+ edit +/baz4 Xfile3
+ let b3 = bufnr()
+
+ call assert_fails('buffer ' .. b1 .. ' abc', 'E488:')
+ call assert_equal(b3, bufnr())
+ call assert_equal(4, line('.'))
+ exe 'buffer +/bar2 ' .. b2
+ call assert_equal(b2, bufnr())
+ call assert_equal(2, line('.'))
+ exe 'buffer +/bar1'
+ call assert_equal(b2, bufnr())
+ call assert_equal(1, line('.'))
+
+ brewind +/foo3
+ call assert_equal(b1, bufnr())
+ call assert_equal(3, line('.'))
+
+ blast +/baz2
+ call assert_equal(b3, bufnr())
+ call assert_equal(2, line('.'))
+
+ bprevious +/bar4
+ call assert_equal(b2, bufnr())
+ call assert_equal(4, line('.'))
+
+ bnext +/baz3
+ call assert_equal(b3, bufnr())
+ call assert_equal(3, line('.'))
+
+ call assert_fails('bmodified', 'E84:')
+ call setbufvar(b2, '&modified', 1)
+ exe 'bmodified +/bar3'
+ call assert_equal(b2, bufnr())
+ call assert_equal(3, line('.'))
+
+ " With no listed buffers in the list, :bnext and :bprev should fail
+ %bwipe!
+ set nobuflisted
+ call assert_fails('bnext', 'E85:')
+ call assert_fails('bprev', 'E85:')
+ set buflisted
+
+ call assert_fails('sandbox bnext', 'E48:')
+
+ call delete('Xfile1')
+ call delete('Xfile2')
+ call delete('Xfile3')
+ %bwipe!
+ endfunc
+
+ " Test for :bdelete
+ func Test_bdelete_cmd()
+ %bwipe!
+ call assert_fails('bdelete 5', 'E516:')
+
+ " Deleting a unlisted and unloaded buffer
+ edit Xfile1
+ let bnr = bufnr()
+ set nobuflisted
+ enew
+ call assert_fails('bdelete ' .. bnr, 'E516:')
+ %bwipe!
endfunc
" vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.2.0260/src/testdir/test_cmdline.vim 2020-02-14
14:32:15.966616351 +0100
--- src/testdir/test_cmdline.vim 2020-02-16 13:28:49.060830136 +0100
***************
*** 632,640 ****
--- 632,663 ----
1,\&s/b/B/
call assert_equal('B', getline(2))
+ let @/ = 'apple'
+ call assert_fails('\/print', 'E486:')
+
bwipe!
endfunc
+ " Test for the tick mark (') in an excmd range
+ func Test_tick_mark_in_range()
+ " If only the tick is passed as a range and no command is specified, there
+ " should not be an error
+ call feedkeys(":'\<CR>", 'xt')
+ call assert_equal("'", getreg(':'))
+ call assert_fails("',print", 'E78:')
+ endfunc
+
+ " Test for using a line number followed by a search pattern as range
+ func Test_lnum_and_pattern_as_range()
+ new
+ call setline(1, ['foo 1', 'foo 2', 'foo 3'])
+ let @" = ''
+ 2/foo/yank
+ call assert_equal("foo 3\n", @")
+ call assert_equal(1, line('.'))
+ close!
+ endfunc
+
" Tests for getcmdline(), getcmdpos() and getcmdtype()
func Check_cmdline(cmdtype)
call assert_equal('MyCmd a', getcmdline())
***************
*** 934,937 ****
--- 957,980 ----
call assert_fails('e <amatch>', 'E497:')
endfunc
+ func Test_cmdwin_jump_to_win()
+ call assert_fails('call feedkeys("q:\<C-W>\<C-W>\<CR>", "xt")', 'E11:')
+ new
+ set modified
+ call assert_fails('call feedkeys("q/:qall\<CR>", "xt")', 'E162:')
+ close!
+ call feedkeys("q/:close\<CR>", "xt")
+ call assert_equal(1, winnr('$'))
+ call feedkeys("q/:exit\<CR>", "xt")
+ call assert_equal(1, winnr('$'))
+ endfunc
+
+ " Test for backtick expression in the command line
+ func Test_cmd_backtick()
+ %argd
+ argadd `=['a', 'b', 'c']`
+ call assert_equal(['a', 'b', 'c'], argv())
+ %argd
+ endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.2.0260/src/testdir/test_exists.vim 2017-10-12 20:30:58.000000000
+0200
--- src/testdir/test_exists.vim 2020-02-16 13:28:49.060830136 +0100
***************
*** 94,101 ****
--- 94,105 ----
call assert_equal(0, exists(':edit/a'))
" Valid internal command (partial match)
call assert_equal(1, exists(':q'))
+ " Valid internal command with a digit
+ call assert_equal(2, exists(':2match'))
" Non-existing internal command
call assert_equal(0, exists(':invalidcmd'))
+ " Internal command with a count
+ call assert_equal(0, exists(':3buffer'))
" User defined command (full match)
command! MyCmd :echo 'My command'
*** ../vim-8.2.0260/src/testdir/test_filechanged.vim 2020-02-03
21:40:00.005363654 +0100
--- src/testdir/test_filechanged.vim 2020-02-16 13:28:49.060830136 +0100
***************
*** 146,148 ****
--- 146,163 ----
bwipe!
call delete('Xchanged_d')
endfunc
+
+ " Test for editing a new buffer from a FileChangedShell autocmd
+ func Test_FileChangedShell_newbuf()
+ call writefile(['one', 'two'], 'Xfile')
+ new Xfile
+ augroup testnewbuf
+ autocmd FileChangedShell * enew
+ augroup END
+ call writefile(['red'], 'Xfile')
+ call assert_fails('checktime', 'E811:')
+ au! testnewbuf
+ call delete('Xfile')
+ endfunc
+
+ " vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.2.0260/src/testdir/test_fileformat.vim 2019-05-27
22:18:04.000000000 +0200
--- src/testdir/test_fileformat.vim 2020-02-16 13:28:49.060830136 +0100
***************
*** 276,278 ****
--- 276,298 ----
call delete('XXUxDsMc')
call delete('Xtest')
endfunc
+
+ " Test for changing the fileformat using ++read
+ func Test_fileformat_plusplus_read()
+ new
+ call setline(1, ['one', 'two', 'three'])
+ w ++ff=dos Xfile1
+ enew!
+ r ++fileformat=unix Xfile1
+ call assert_equal('unix', &fileformat)
+ 3r ++edit Xfile1
+ call assert_equal('dos', &fileformat)
+ close!
+ call delete('Xfile1')
+ set fileformat&
+ call assert_fails('e ++fileformat Xfile1', 'E474:')
+ call assert_fails('e ++ff=abc Xfile1', 'E474:')
+ call assert_fails('e ++abc1 Xfile1', 'E474:')
+ endfunc
+
+ " vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.2.0260/src/testdir/test_mapping.vim 2020-02-11
22:03:43.038846226 +0100
--- src/testdir/test_mapping.vim 2020-02-16 13:28:49.060830136 +0100
***************
*** 38,43 ****
--- 38,44 ----
abclear
call assert_equal("\n\nNo abbreviation found", execute('abbrev'))
+ call assert_fails('%abclear', 'E481:')
endfunc
func Test_abclear_buffer()
*** ../vim-8.2.0260/src/testdir/test_marks.vim 2020-01-15 20:36:52.140437085
+0100
--- src/testdir/test_marks.vim 2020-02-16 13:28:49.060830136 +0100
***************
*** 212,215 ****
--- 212,224 ----
bwipe!
endfunc
+ " Test for :k command to set a mark
+ func Test_marks_k_cmd()
+ new
+ call setline(1, ['foo', 'bar', 'baz', 'qux'])
+ 1,3kr
+ call assert_equal([0, 3, 1, 0], getpos("'r"))
+ close!
+ endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.2.0260/src/testdir/test_normal.vim 2019-12-01 15:08:14.000000000
+0100
--- src/testdir/test_normal.vim 2020-02-16 13:28:49.064830117 +0100
***************
*** 2705,2707 ****
--- 2705,2723 ----
bw!
set cpoptions& number& numberwidth&
endfunc
+
+ " Test for cursor movement with '-' in 'cpoptions'
+ func Test_normal_cpo_minus()
+ new
+ call setline(1, ['foo', 'bar', 'baz'])
+ let save_cpo = &cpo
+ set cpo+=-
+ call assert_beeps('normal 10j')
+ call assert_equal(1, line('.'))
+ normal G
+ call assert_beeps('normal 10k')
+ call assert_equal(3, line('.'))
+ call assert_fails(10, 'E16:')
+ let &cpo = save_cpo
+ close!
+ endfunc
*** ../vim-8.2.0260/src/testdir/test_plus_arg_edit.vim 2019-01-24
17:44:13.000000000 +0100
--- src/testdir/test_plus_arg_edit.vim 2020-02-16 13:28:49.064830117 +0100
***************
*** 32,34 ****
--- 32,47 ----
bw!
call delete('Xfile')
endfunc
+
+ " Test for ++bin and ++nobin arguments
+ func Test_binary_arg()
+ new
+ edit ++bin Xfile1
+ call assert_equal(1, &binary)
+ edit ++nobin Xfile2
+ call assert_equal(0, &binary)
+ call assert_fails('edit ++binabc Xfile3', 'E474:')
+ close!
+ endfunc
+
+ " vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.2.0260/src/testdir/test_quickfix.vim 2020-02-11
22:03:43.038846226 +0100
--- src/testdir/test_quickfix.vim 2020-02-16 13:28:49.064830117 +0100
***************
*** 538,543 ****
--- 538,552 ----
10Xcc
call assert_equal(11, line('.'))
call assert_equal('Xqftestfile2', bufname('%'))
+ Xopen
+ call cursor(2, 1)
+ if a:cchar == 'c'
+ .cc
+ else
+ .ll
+ endif
+ call assert_equal(6, line('.'))
+ call assert_equal('Xqftestfile1', bufname('%'))
" Jumping to an error from the error window (when only the error window is
" present)
*** ../vim-8.2.0260/src/version.c 2020-02-15 23:06:40.826770264 +0100
--- src/version.c 2020-02-16 13:30:35.560305945 +0100
***************
*** 744,745 ****
--- 744,747 ----
{ /* Add new patch number below this line */
+ /**/
+ 261,
/**/
--
>From "know your smileys":
y:-) Bad toupee
/// Bram Moolenaar -- [email protected] -- 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 ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/vim_dev/202002161235.01GCZ8Ev021860%40masaka.moolenaar.net.