Problem: Some lines of code not covered by tests.
Solution: Add a few more test cases. (Dominique Pellé, closes #9453)
let lines =<< trim END
VAR s = "abc"
call filter(s, '"b" != v:val')
- call assert_equal(s, s)
+ call assert_equal('abc', s)
call assert_equal('ac', filter('abc', '"b" != v:val'))
call assert_equal('あいうえお', filter('あxいxうxえxお', '"x" != v:val'))
call assert_equal('あa😊💕💕b💕', filter('あxax😊x💕💕b💕x', '"x" != v:val'))
let lines =<< trim END
VAR s = "abc"
call map(s, 'nr2char(char2nr(v:val) + 2)')
- call assert_equal(s, s)
+ call assert_equal('abc', s)
call assert_equal('cde', map('abc', 'nr2char(char2nr(v:val) + 2)'))
call assert_equal('[あ][i][う][え][お]', map('あiうえお', '"[" .. v:val .. "]"'))
call assert_equal('[あ][a][😊][,][‱][‼][⁇][⁈][⁉][💕][b][💕][c][💕]', map('あa😊,‱‼⁇⁈⁉💕b💕c💕', '"[" .. v:val .. "]"'))
let lines =<< trim END
VAR s = "abc"
call mapnew(s, 'nr2char(char2nr(v:val) + 2)')
- call assert_equal(s, s)
+ call assert_equal('abc', s)
call assert_equal('cde', mapnew('abc', 'nr2char(char2nr(v:val) + 2)'))
call assert_equal('[あ][i][う][え][お]', mapnew('あiうえお', '"[" .. v:val .. "]"'))
call assert_equal('[あ][a][😊][,][‱][‼][⁇][⁈][⁉][💕][b][💕][c][💕]', mapnew('あa😊,‱‼⁇⁈⁉💕b💕c💕', '"[" .. v:val .. "]"'))
let hlTestHiPre = HighlightArgs('TestHi')
" Test colorscheme
+ call assert_equal("\ndefault", execute('colorscheme'))
hi clear
if exists('syntax_on')
syntax reset
endif
let g:colors_name = 'test'
+ call assert_equal("\ntest", execute('colorscheme'))
hi link TestLink ErrorMsg
hi TestHi ctermbg=green
" Restore default highlighting
colorscheme default
" 'default' should work no matter if highlight group was cleared
+ call assert_equal("\ndefault", execute('colorscheme'))
hi def link TestLink Identifier
hi def TestHi ctermbg=red
let hlTestLinkPost = HighlightArgs('TestLink')
source check.vim
func s:equivalence_test()
- let str = "AÀÁÂÃÄÅ B C D EÈÉÊË F G H IÌÍÎÏ J K L M NÑ OÒÓÔÕÖØ P Q R S T UÙÚÛÜ V W X YÝ Z aàáâãäå b c d eèéêë f g h iìíîï j k l m nñ oòóôõöø p q r s t uùúûü v w x yýÿ z"
+ let str = 'AÀÁÂÃÄÅ B C D EÈÉÊË F G H IÌÍÎÏ J K L M NÑ OÒÓÔÕÖØ P Q R S T UÙÚÛÜ V W X YÝ Z '
+ \ .. 'aàáâãäå b c d eèéêë f g h iìíîï j k l m nñ oòóôõöø p q r s t uùúûü v w x yýÿ z '
+ \ .. "0 1 2 3 4 5 6 7 8 9 "
+ \ .. "` ~ ! ? ; : . , / \\ ' \" | < > [ ] { } ( ) @ # $ % ^ & * _ - + \b \e \f \n \r \t"
let groups = split(str)
for group1 in groups
for c in split(group1, '\zs')
call assert_fails("call search('\\(')", 'E54:')
call assert_fails("call search('\\)')", 'E55:')
call assert_fails("call search('\\z\\(\\)')", 'E66:')
+ call assert_fails("call search('\\z2')", 'E67:')
+ call assert_fails("call search('\\zx')", 'E867:')
call assert_fails("call search('\\%[ab')", 'E69:')
call assert_fails("call search('\\%[]')", 'E70:')
call assert_fails("call search('\\%9999999999999999999999999999v')", 'E951:')
assert_equal("yes", expandcmd("`={a: 'yes'}['a']`"))
expandcmd('')->assert_equal('')
+
+ CheckDefAndScriptFailure(['expandcmd([1])'], ['E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1174: String required for argument 1'])
enddef
def Test_extend_arg_types()
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 3982,
/**/
3981,
/**/