1
0
forked from aniani/vim

patch 9.0.0543: insufficient testing for assert and test functions

Problem:    Insufficient testing for assert and test functions.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #11190)
This commit is contained in:
Yegappan Lakshmanan
2022-09-22 13:44:00 +01:00
committed by Bram Moolenaar
parent f1d2ddcb9b
commit e24b5e0b0f
4 changed files with 63 additions and 0 deletions

View File

@@ -268,6 +268,20 @@ func Test_assert_fail_fails()
endtry endtry
call assert_match("E856: \"assert_fails()\" second argument", exp) call assert_match("E856: \"assert_fails()\" second argument", exp)
try
call assert_equal(1, assert_fails('xxx', test_null_list()))
catch
let exp = v:exception
endtry
call assert_match("E856: \"assert_fails()\" second argument", exp)
try
call assert_equal(1, assert_fails('xxx', []))
catch
let exp = v:exception
endtry
call assert_match("E856: \"assert_fails()\" second argument", exp)
try try
call assert_equal(1, assert_fails('xxx', #{one: 1})) call assert_equal(1, assert_fails('xxx', #{one: 1}))
catch catch
@@ -307,6 +321,15 @@ func Test_assert_fail_fails()
call assert_equal(1, assert_fails('c0', ['', '\(.\)\1'])) call assert_equal(1, assert_fails('c0', ['', '\(.\)\1']))
call assert_match("Expected '\\\\\\\\(.\\\\\\\\)\\\\\\\\1' but got 'E939: Positive count required: c0': c0", v:errors[0]) call assert_match("Expected '\\\\\\\\(.\\\\\\\\)\\\\\\\\1' but got 'E939: Positive count required: c0': c0", v:errors[0])
call remove(v:errors, 0) call remove(v:errors, 0)
" Test for matching the line number and the script name in an error message
call writefile(['', 'call Xnonexisting()'], 'Xassertfails.vim', 'D')
call assert_fails('source Xassertfails.vim', 'E117:', '', 10)
call assert_match("Expected 10 but got 2", v:errors[0])
call remove(v:errors, 0)
call assert_fails('source Xassertfails.vim', 'E117:', '', 2, 'Xabc')
call assert_match("Expected 'Xabc' but got .*Xassertfails.vim", v:errors[0])
call remove(v:errors, 0)
endfunc endfunc
func Test_assert_fails_in_try_block() func Test_assert_fails_in_try_block()
@@ -331,6 +354,12 @@ func Test_assert_beeps()
bwipe bwipe
endfunc endfunc
func Test_assert_nobeep()
call assert_equal(1, assert_nobeep('normal! cr'))
call assert_match("command did beep: normal! cr", v:errors[0])
call remove(v:errors, 0)
endfunc
func Test_assert_inrange() func Test_assert_inrange()
call assert_equal(0, assert_inrange(7, 7, 7)) call assert_equal(0, assert_inrange(7, 7, 7))
call assert_equal(0, assert_inrange(5, 7, 5)) call assert_equal(0, assert_inrange(5, 7, 5))
@@ -365,6 +394,16 @@ func Test_assert_inrange()
call assert_equal(1, assert_inrange(5, 7, 8.0)) call assert_equal(1, assert_inrange(5, 7, 8.0))
call assert_match("Expected range 5.0 - 7.0, but got 8.0", v:errors[0]) call assert_match("Expected range 5.0 - 7.0, but got 8.0", v:errors[0])
call remove(v:errors, 0) call remove(v:errors, 0)
" Use a custom message
call assert_equal(1, assert_inrange(5, 7, 8.0, "Higher"))
call assert_match("Higher", v:errors[0])
call remove(v:errors, 0)
" Invalid arguments
call assert_fails("call assert_inrange([], 2, 3)", 'E1219:')
call assert_fails("call assert_inrange(1, [], 3)", 'E1219:')
call assert_fails("call assert_inrange(1, 2, [])", 'E1219:')
endfunc endfunc
func Test_assert_with_msg() func Test_assert_with_msg()
@@ -407,6 +446,19 @@ func Test_user_is_happy()
sleep 300m sleep 300m
endfunc endfunc
" Test for the test_alloc_fail() function
func Test_test_alloc_fail()
call assert_fails('call test_alloc_fail([], 1, 1)', 'E474:')
call assert_fails('call test_alloc_fail(10, [], 1)', 'E474:')
call assert_fails('call test_alloc_fail(10, 1, [])', 'E474:')
call assert_fails('call test_alloc_fail(999999, 1, 1)', 'E474:')
endfunc
" Test for the test_option_not_set() function
func Test_test_option_not_set()
call assert_fails('call test_option_not_set("Xinvalidopt")', 'E475:')
endfunc
" Must be last. " Must be last.
func Test_zz_quit_detected() func Test_zz_quit_detected()
" Verify that if a test function ends Vim the test script detects this. " Verify that if a test function ends Vim the test script detects this.

View File

@@ -815,6 +815,7 @@ func Test_shortmess_F2()
call assert_match('file2', execute('bn', '')) call assert_match('file2', execute('bn', ''))
bwipe bwipe
bwipe bwipe
call assert_fails('call test_getvalue("abc")', 'E475:')
endfunc endfunc
func Test_local_scrolloff() func Test_local_scrolloff()

View File

@@ -7216,6 +7216,14 @@ func Test_refcount()
call d.Func() call d.Func()
unlet d unlet d
delfunc DictFunc delfunc DictFunc
call assert_equal(-1, test_refcount(test_null_job()))
call assert_equal(-1, test_refcount(test_null_channel()))
call assert_equal(-1, test_refcount(test_null_function()))
call assert_equal(-1, test_refcount(test_null_partial()))
call assert_equal(-1, test_refcount(test_null_blob()))
call assert_equal(-1, test_refcount(test_null_list()))
call assert_equal(-1, test_refcount(test_null_dict()))
endfunc endfunc
" Test for missing :endif, :endfor, :endwhile and :endtry {{{1 " Test for missing :endif, :endfor, :endwhile and :endtry {{{1

View File

@@ -699,6 +699,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
543,
/**/ /**/
542, 542,
/**/ /**/