Patch 8.2.0347
Problem: Various code not covered by tests.
Solution: Add more test coverage. (Yegappan Lakshmanan, closes #5720)
Files: src/testdir/gen_opt_test.vim, src/testdir/test86.in,
src/testdir/test_cmdline.vim, src/testdir/test_digraph.vim,
src/testdir/test_ex_mode.vim, src/testdir/test_history.vim
*** ../vim-8.2.0346/src/testdir/gen_opt_test.vim 2019-12-27
13:49:19.988946876 +0100
--- src/testdir/gen_opt_test.vim 2020-03-02 20:52:22.416001322 +0100
***************
*** 150,156 ****
\ 'viminfo': [['', '''50', '"30'], ['xxx']],
\ 'virtualedit': [['', 'all', 'all,block'], ['xxx']],
\ 'whichwrap': [['', 'b,s', 'bs'], ['xxx']],
! \ 'wildmode': [['', 'full', 'list:full', 'full,longest'], ['xxx']],
\ 'wildoptions': [['', 'tagfile'], ['xxx']],
\ 'winaltkeys': [['menu', 'no'], ['', 'xxx']],
\
--- 150,156 ----
\ 'viminfo': [['', '''50', '"30'], ['xxx']],
\ 'virtualedit': [['', 'all', 'all,block'], ['xxx']],
\ 'whichwrap': [['', 'b,s', 'bs'], ['xxx']],
! \ 'wildmode': [['', 'full', 'list:full', 'full,longest'], ['xxx', 'a4',
'full,full,full,full,full']],
\ 'wildoptions': [['', 'tagfile'], ['xxx']],
\ 'winaltkeys': [['menu', 'no'], ['', 'xxx']],
\
*** ../vim-8.2.0346/src/testdir/test86.in 2019-12-01 14:25:26.000000000
+0100
--- src/testdir/test86.in 2020-03-02 20:52:22.416001322 +0100
***************
*** 1156,1162 ****
:$put =string(pyeval('dd') is# pyeval('dd'))
:$put =string(pyeval('df'))
:delfunction Put
! py << EOF
del DupDict
del DupList
del DupFun
--- 1156,1162 ----
:$put =string(pyeval('dd') is# pyeval('dd'))
:$put =string(pyeval('df'))
:delfunction Put
! py <<
del DupDict
del DupList
del DupFun
***************
*** 1164,1170 ****
del dl
del dl2
del df
! EOF
:"
:" Test chdir
py << EOF
--- 1164,1170 ----
del dl
del dl2
del df
! .
:"
:" Test chdir
py << EOF
*** ../vim-8.2.0346/src/testdir/test_cmdline.vim 2020-03-01
16:53:06.378524819 +0100
--- src/testdir/test_cmdline.vim 2020-03-02 20:52:22.416001322 +0100
***************
*** 477,488 ****
--- 477,498 ----
call feedkeys(":\"one\<C-R>\<C-X>two\<CR>", 'xt')
call assert_equal('"onetwo', @:)
+ " Test for pasting register containing CTRL-H using CTRL-R and CTRL-R CTRL-R
let @a = "xy\<C-H>z"
call feedkeys(":\"\<C-R>a\<CR>", 'xt')
call assert_equal('"xz', @:)
+ call feedkeys(":\"\<C-R>\<C-R>a\<CR>", 'xt')
+ call assert_equal("\"xy\<C-H>z", @:)
call feedkeys(":\"\<C-R>\<C-O>a\<CR>", 'xt')
call assert_equal("\"xy\<C-H>z", @:)
+ " Test for pasting register containing CTRL-V using CTRL-R and CTRL-R CTRL-R
+ let @a = "xy\<C-V>z"
+ call feedkeys(":\"\<C-R>=@a\<CR>\<cr>", 'xt')
+ call assert_equal('"xyz', @:)
+ call feedkeys(":\"\<C-R>\<C-R>=@a\<CR>\<cr>", 'xt')
+ call assert_equal("\"xy\<C-V>z", @:)
+
call assert_beeps('call feedkeys(":\<C-R>=\<C-R>=\<Esc>", "xt")')
bwipe!
***************
*** 1188,1194 ****
func Test_cmdline_edit()
let str = ":one two\<C-U>"
let str ..= "one two\<C-W>\<C-W>"
! let str ..= "one\<BS>\<C-H>\<Del>"
let str ..= "\<Left>five\<Right>"
let str ..= "\<Home>two "
let str ..= "\<C-Left>one "
--- 1198,1204 ----
func Test_cmdline_edit()
let str = ":one two\<C-U>"
let str ..= "one two\<C-W>\<C-W>"
! let str ..= "four\<BS>\<C-H>\<Del>\<kDel>"
let str ..= "\<Left>five\<Right>"
let str ..= "\<Home>two "
let str ..= "\<C-Left>one "
***************
*** 1207,1213 ****
set rightleftcmd=search
let str = "/one two\<C-U>"
let str ..= "one two\<C-W>\<C-W>"
! let str ..= "one\<BS>\<C-H>\<Del>"
let str ..= "\<Right>five\<Left>"
let str ..= "\<Home>two "
let str ..= "\<C-Right>one "
--- 1217,1223 ----
set rightleftcmd=search
let str = "/one two\<C-U>"
let str ..= "one two\<C-W>\<C-W>"
! let str ..= "four\<BS>\<C-H>\<Del>\<kDel>"
let str ..= "\<Right>five\<Left>"
let str ..= "\<Home>two "
let str ..= "\<C-Right>one "
***************
*** 1268,1271 ****
--- 1278,1319 ----
%bwipe!
endfunc
+ " Test for opening the command-line window when too many windows are present
+ func Test_cmdwin_fail_to_open()
+ " Open as many windows as possible
+ for i in range(100)
+ try
+ new
+ catch /E36:/
+ break
+ endtry
+ endfor
+ call assert_beeps('call feedkeys("q:\<CR>", "xt")')
+ only
+ endfunc
+
+ " Test for recursively getting multiple command line inputs
+ func Test_cmdwin_multi_input()
+ call feedkeys(":\<C-R>=input('P: ')\<CR>\"cyan\<CR>\<CR>", 'xt')
+ call assert_equal('"cyan', @:)
+ endfunc
+
+ " Test for using CTRL-_ in the command line with 'allowrevins'
+ func Test_cmdline_revins()
+ CheckNotMSWindows
+ CheckFeature rightleft
+ call feedkeys(":\"abc\<c-_>\<cr>", 'xt')
+ call assert_equal("\"abc\<c-_>", @:)
+ set allowrevins
+ call feedkeys(":\"abc\<c-_>xyz\<c-_>\<CR>", 'xt')
+ call assert_equal('"abcñèæ', @:)
+ set allowrevins&
+ endfunc
+
+ " Test for typing UTF-8 composing characters in the command line
+ func Test_cmdline_composing_chars()
+ call feedkeys(":\"\<C-V>u3046\<C-V>u3099\<CR>", 'xt')
+ call assert_equal('"ゔ', @:)
+ endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.2.0346/src/testdir/test_digraph.vim 2020-01-26
21:59:25.632718110 +0100
--- src/testdir/test_digraph.vim 2020-03-02 20:52:22.416001322 +0100
***************
*** 451,460 ****
func Test_digraph_cmndline()
" Create digraph on commandline
! " This is a hack, to let Vim create the digraph in commandline mode
! let s = ''
! exe "sil! norm! :let s.='\<c-k>Eu'\<cr>"
! call assert_equal("€", s)
endfunc
func Test_show_digraph()
--- 451,462 ----
func Test_digraph_cmndline()
" Create digraph on commandline
! call feedkeys(":\"\<c-k>Eu\<cr>", 'xt')
! call assert_equal('"€', @:)
!
! " Canceling a CTRL-K on the cmdline
! call feedkeys(":\"a\<c-k>\<esc>b\<cr>", 'xt')
! call assert_equal('"ab', @:)
endfunc
func Test_show_digraph()
*** ../vim-8.2.0346/src/testdir/test_ex_mode.vim 2020-03-01
16:53:06.378524819 +0100
--- src/testdir/test_ex_mode.vim 2020-03-02 20:52:22.416001322 +0100
***************
*** 50,56 ****
call assert_equal(['foo', ' foo0'], Ex(" foo0\<C-d>"), e)
call assert_equal(['foo', ' foo^'], Ex(" foo^\<C-d>"), e)
call assert_equal(['foo', 'foo'],
! \ Ex("\<BS>\<C-H>\<Del>foo"), e)
endfor
set sw&
--- 50,60 ----
call assert_equal(['foo', ' foo0'], Ex(" foo0\<C-d>"), e)
call assert_equal(['foo', ' foo^'], Ex(" foo^\<C-d>"), e)
call assert_equal(['foo', 'foo'],
! \ Ex("\<BS>\<C-H>\<Del>\<kDel>foo"), e)
! " default wildchar <Tab> interferes with this test
! set wildchar=<c-e>
! call assert_equal(["a\tb", "a\tb"], Ex("a\t\t\<C-H>b"), e)
! set wildchar&
endfor
set sw&
***************
*** 139,142 ****
--- 143,160 ----
close!
endfunc
+ " In Ex-mode, backslashes at the end of a command should be halved.
+ func Test_Ex_echo_backslash()
+ " This test works only when the language is English
+ if v:lang != "C" && v:lang !~ '^[Ee]n'
+ return
+ endif
+ let bsl = '\\\\'
+ let bsl2 = '\\\'
+ call assert_fails('call feedkeys("Qecho " .. bsl .. "\nvisual\n", "xt")',
+ \ "E15: Invalid expression: \\\\")
+ call assert_fails('call feedkeys("Qecho " .. bsl2 .. "\nm\nvisual\n",
"xt")',
+ \ "E15: Invalid expression: \\\nm")
+ endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.2.0346/src/testdir/test_history.vim 2020-03-01
16:53:06.378524819 +0100
--- src/testdir/test_history.vim 2020-03-02 20:52:22.416001322 +0100
***************
*** 176,187 ****
--- 176,227 ----
cunmap <F2>
delfunc SavePat
+ " Search for a pattern that is not present in the history
+ call assert_beeps('call feedkeys("/a1b2\<Up>\<CR>", "xt")')
+
" Recall patterns with 'history' set to 0
set history=0
let @/ = 'abc'
let cmd = 'call feedkeys("/\<Up>\<Down>\<S-Up>\<S-Down>\<CR>", "xt")'
call assert_fails(cmd, 'E486:')
set history&
+
+ " Recall patterns till the end of history
+ set history=4
+ call histadd('/', 'pat')
+ call histdel('/')
+ call histadd('/', 'pat1')
+ call histadd('/', 'pat2')
+ call assert_beeps('call feedkeys("/\<Up>\<Up>\<Up>\<C-U>\<cr>", "xt")')
+ call assert_beeps('call feedkeys("/\<Down><cr>", "xt")')
+
+ " Test for wrapping around the history list
+ for i in range(3, 7)
+ call histadd('/', 'pat' .. i)
+ endfor
+ let upcmd = "\<up>\<up>\<up>\<up>\<up>"
+ let downcmd = "\<down>\<down>\<down>\<down>\<down>"
+ try
+ call feedkeys("/" .. upcmd .. "\<cr>", 'xt')
+ catch /E486:/
+ endtry
+ call assert_equal('pat4', @/)
+ try
+ call feedkeys("/" .. upcmd .. downcmd .. "\<cr>", 'xt')
+ catch /E486:/
+ endtry
+ call assert_equal('pat4', @/)
+
+ " Test for changing the search command separator in the history
+ call assert_fails('call feedkeys("/def/\<cr>", "xt")', 'E486:')
+ call assert_fails('call feedkeys("?\<up>\<cr>", "xt")', 'E486:')
+ call assert_equal('def?', histget('/', -1))
+
+ call assert_fails('call feedkeys("/ghi?\<cr>", "xt")', 'E486:')
+ call assert_fails('call feedkeys("?\<up>\<cr>", "xt")', 'E486:')
+ call assert_equal('ghi\?', histget('/', -1))
+
+ set history&
endfunc
" Test for making sure the key value is not stored in history
*** ../vim-8.2.0346/src/version.c 2020-03-01 23:32:22.348059441 +0100
--- src/version.c 2020-03-02 20:53:24.543869870 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 347,
/**/
--
hundred-and-one symptoms of being an internet addict:
167. You have more than 200 websites bookmarked.
/// 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/202003021955.022JtB7O008956%40masaka.moolenaar.net.