Patch 8.2.2994

4 views
Skip to first unread message

Bram Moolenaar

unread,
Jun 13, 2021, 3:53:23 PM6/13/21
to vim...@googlegroups.com

Patch 8.2.2994
Problem: Various code is not fully tested.
Solution: Add a few more tests. (Yegappan Lakshmanan, closes #8378)
Files: src/testdir/test_excmd.vim, src/testdir/test_mapping.vim,
src/testdir/test_modeline.vim, src/testdir/test_options.vim,
src/testdir/test_paste.vim, src/vim9compile.c


*** ../vim-8.2.2993/src/testdir/test_excmd.vim 2021-06-12 13:46:38.055854976 +0200
--- src/testdir/test_excmd.vim 2021-06-13 21:49:44.585715050 +0200
***************
*** 596,602 ****
" some options cannot be changed in a sandbox
call assert_fails('set exrc', 'E48:')
call assert_fails('set cdpath', 'E48:')
! if has('xim')
call assert_fails('set imstyle', 'E48:')
endif
endfunc
--- 596,602 ----
" some options cannot be changed in a sandbox
call assert_fails('set exrc', 'E48:')
call assert_fails('set cdpath', 'E48:')
! if has('xim') && has('gui_gtk')
call assert_fails('set imstyle', 'E48:')
endif
endfunc
*** ../vim-8.2.2993/src/testdir/test_mapping.vim 2021-04-30 19:43:06.618062735 +0200
--- src/testdir/test_mapping.vim 2021-06-13 21:49:44.585715050 +0200
***************
*** 485,490 ****
--- 485,495 ----
call assert_equal(['n ,k <Nop>'],
\ execute('nmap ,k')->trim()->split("\n"))

+ " map with space at the beginning
+ exe "nmap \<C-V> w <Nop>"
+ call assert_equal(['n <Space>w <Nop>'],
+ \ execute("nmap \<C-V> w")->trim()->split("\n"))
+
nmapclear
endfunc

***************
*** 1411,1414 ****
--- 1416,1434 ----
bwipe!
endfunc

+ " Test for abbreviations with 'latin1' encoding
+ func Test_abbreviate_latin1_encoding()
+ set encoding=latin1
+ call assert_fails('abbr ab#$c ABC', 'E474:')
+ new
+ iabbr <buffer> #i #include
+ iabbr <buffer> ## #enddef
+ exe "normal i#i\<C-]>"
+ call assert_equal('#include', getline(1))
+ exe "normal 0Di##\<C-]>"
+ call assert_equal('#enddef', getline(1))
+ %bw!
+ set encoding=utf-8
+ endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.2.2993/src/testdir/test_modeline.vim 2020-08-12 18:50:31.883655785 +0200
--- src/testdir/test_modeline.vim 2021-06-13 21:49:44.585715050 +0200
***************
*** 334,337 ****
--- 334,363 ----
call delete('Xmodeline')
endfunc

+ " Test for the 'modeline' default value in compatible and non-compatible modes
+ " for root and non-root accounts
+ func Test_modeline_default()
+ set compatible
+ call assert_false(&modeline)
+ set nocompatible
+ call assert_equal(IsRoot() ? 0 : 1, &modeline)
+ set compatible&vi
+ call assert_false(&modeline)
+ set compatible&vim
+ call assert_equal(IsRoot() ? 0 : 1, &modeline)
+ set compatible& modeline&
+ endfunc
+
+ " Some options cannot be set from the modeline when 'diff' option is set
+ func Test_modeline_diff_buffer()
+ call writefile(['vim: diff foldmethod=marker wrap'], 'Xfile')
+ set foldmethod& nowrap
+ new Xfile
+ call assert_equal('manual', &foldmethod)
+ call assert_false(&wrap)
+ set wrap&
+ call delete('Xfile')
+ bw
+ endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.2.2993/src/testdir/test_options.vim 2021-06-13 20:27:32.889357660 +0200
--- src/testdir/test_options.vim 2021-06-13 21:49:44.585715050 +0200
***************
*** 1160,1163 ****
--- 1160,1180 ----
set cmdheight&
endfunc

+ " To specify a control character as a option value, '^' can be used
+ func Test_opt_control_char()
+ set wildchar=^v
+ call assert_equal("\<C-V>", nr2char(&wildchar))
+ set wildcharm=^r
+ call assert_equal("\<C-R>", nr2char(&wildcharm))
+ " Bug: This doesn't work for the 'cedit' and 'termwinkey' options
+ set wildchar& wildcharm&
+ endfunc
+
+ " Test for the 'errorbells' option
+ func Test_opt_errorbells()
+ set errorbells
+ call assert_beeps('s/a1b2/x1y2/')
+ set noerrorbells
+ endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.2.2993/src/testdir/test_paste.vim 2021-03-15 18:36:16.725494781 +0100
--- src/testdir/test_paste.vim 2021-06-13 21:49:44.585715050 +0200
***************
*** 159,166 ****
--- 159,226 ----
call feedkeys("i\<F4>", 'xt')
call assert_false(&paste)
call assert_equal('Hello', getline(1))
+ " command-line completion for 'pastetoggle' value
+ call feedkeys(":set pastetoggle=\<Tab>\<C-B>\"\<CR>", 'xt')
+ call assert_equal('"set pastetoggle=<F4>', @:)
set pastetoggle&
bwipe!
endfunc

+ " Test for restoring option values when 'paste' is disabled
+ func Test_paste_opt_restore()
+ set autoindent expandtab ruler showmatch
+ if has('rightleft')
+ set revins hkmap
+ endif
+ set smarttab softtabstop=3 textwidth=27 wrapmargin=12
+ if has('vartabs')
+ set varsofttabstop=10,20
+ endif
+
+ " enabling 'paste' should reset the above options
+ set paste
+ call assert_false(&autoindent)
+ call assert_false(&expandtab)
+ if has('rightleft')
+ call assert_false(&revins)
+ call assert_false(&hkmap)
+ endif
+ call assert_false(&ruler)
+ call assert_false(&showmatch)
+ call assert_false(&smarttab)
+ call assert_equal(0, &softtabstop)
+ call assert_equal(0, &textwidth)
+ call assert_equal(0, &wrapmargin)
+ if has('vartabs')
+ call assert_equal('', &varsofttabstop)
+ endif
+
+ " disabling 'paste' should restore the option values
+ set nopaste
+ call assert_true(&autoindent)
+ call assert_true(&expandtab)
+ if has('rightleft')
+ call assert_true(&revins)
+ call assert_true(&hkmap)
+ endif
+ call assert_true(&ruler)
+ call assert_true(&showmatch)
+ call assert_true(&smarttab)
+ call assert_equal(3, &softtabstop)
+ call assert_equal(27, &textwidth)
+ call assert_equal(12, &wrapmargin)
+ if has('vartabs')
+ call assert_equal('10,20', &varsofttabstop)
+ endif
+
+ set autoindent& expandtab& ruler& showmatch&
+ if has('rightleft')
+ set revins& hkmap&
+ endif
+ set smarttab& softtabstop& textwidth& wrapmargin&
+ if has('vartabs')
+ set varsofttabstop&
+ endif
+ endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.2.2993/src/vim9compile.c 2021-06-13 15:38:55.574605083 +0200
--- src/vim9compile.c 2021-06-13 21:49:44.585715050 +0200
***************
*** 454,460 ****
if (name[len] == '(' || (p[0] == '-' && p[1] == '>'))
{
// Do not check for an internal function, since it might also be a
! // valid command, such as ":split" versuse "split()".
// Skip "g:" before a function name.
is_global = (name[0] == 'g' && name[1] == ':');
return find_func(is_global ? name + 2 : name, is_global, cctx) != NULL;
--- 454,460 ----
if (name[len] == '(' || (p[0] == '-' && p[1] == '>'))
{
// Do not check for an internal function, since it might also be a
! // valid command, such as ":split" versus "split()".
// Skip "g:" before a function name.
is_global = (name[0] == 'g' && name[1] == ':');
return find_func(is_global ? name + 2 : name, is_global, cctx) != NULL;
*** ../vim-8.2.2993/src/version.c 2021-06-13 20:27:32.889357660 +0200
--- src/version.c 2021-06-13 21:51:36.173421760 +0200
***************
*** 752,753 ****
--- 752,755 ----
{ /* Add new patch number below this line */
+ /**/
+ 2994,
/**/

--
BEDEVERE: And what do you burn, apart from witches?
FOURTH VILLAGER: ... Wood?
BEDEVERE: So why do witches burn?
SECOND VILLAGER: (pianissimo) ... Because they're made of wood...?
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD

/// Bram Moolenaar -- Br...@Moolenaar.net -- http://www.Moolenaar.net \\\
/// \\\
\\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
Reply all
Reply to author
Forward
0 new messages