mirror of
https://github.com/vim/vim.git
synced 2025-09-25 03:54:15 -04:00
patch 8.2.1199: not all assert functions are fully tested
Problem: Not all assert functions are fully tested. Solution: Test more assert functions.
This commit is contained in:
@@ -48,6 +48,11 @@ func Test_assert_equal()
|
||||
call assert_equal('XxxxxxxxxxxxxxxxxxxxxxX', 'XyyyyyyyyyyyyyyyyyyyyyyyyyX')
|
||||
call assert_match("Expected 'X\\\\\\[x occurs 21 times]X' but got 'X\\\\\\[y occurs 25 times]X'", v:errors[0])
|
||||
call remove(v:errors, 0)
|
||||
|
||||
" special characters are escaped
|
||||
call assert_equal("\b\e\f\n\t\r\\\x01\x7f", 'x')
|
||||
call assert_match('Expected ''\\b\\e\\f\\n\\t\\r\\\\\\x01\\x7f'' but got ''x''', v:errors[0])
|
||||
call remove(v:errors, 0)
|
||||
endfunc
|
||||
|
||||
func Test_assert_equal_dict()
|
||||
@@ -143,6 +148,14 @@ func Test_assert_exception()
|
||||
call assert_equal(0, assert_exception('E492:'))
|
||||
endtry
|
||||
|
||||
try
|
||||
nocommand
|
||||
catch
|
||||
call assert_equal(1, assert_exception('E12345:'))
|
||||
endtry
|
||||
call assert_match("Expected 'E12345:' but got 'Vim:E492: ", v:errors[0])
|
||||
call remove(v:errors, 0)
|
||||
|
||||
try
|
||||
nocommand
|
||||
catch
|
||||
@@ -153,6 +166,10 @@ func Test_assert_exception()
|
||||
call assert_equal(0, assert_exception('E730:'))
|
||||
endtry
|
||||
endtry
|
||||
|
||||
call assert_equal(1, assert_exception('E492:'))
|
||||
call assert_match('v:exception is not set', v:errors[0])
|
||||
call remove(v:errors, 0)
|
||||
endfunc
|
||||
|
||||
func Test_wrong_error_type()
|
||||
@@ -216,6 +233,14 @@ func Test_assert_fail_fails()
|
||||
call assert_match("stupid: Expected 'E9876' but got 'E492:", v:errors[0])
|
||||
call remove(v:errors, 0)
|
||||
|
||||
call assert_equal(1, assert_fails('xxx', ['E9876']))
|
||||
call assert_match("Expected \\['E9876'\\] but got 'E492:", v:errors[0])
|
||||
call remove(v:errors, 0)
|
||||
|
||||
call assert_equal(1, assert_fails('xxx', ['E492:', 'E9876']))
|
||||
call assert_match("Expected \\['E492:', 'E9876'\\] but got 'E492:", v:errors[0])
|
||||
call remove(v:errors, 0)
|
||||
|
||||
call assert_equal(1, assert_fails('echo', '', 'echo command'))
|
||||
call assert_match("command did not fail: echo command", v:errors[0])
|
||||
call remove(v:errors, 0)
|
||||
@@ -223,6 +248,27 @@ func Test_assert_fail_fails()
|
||||
call assert_equal(1, 'echo'->assert_fails('', 'echo command'))
|
||||
call assert_match("command did not fail: echo command", v:errors[0])
|
||||
call remove(v:errors, 0)
|
||||
|
||||
try
|
||||
call assert_equal(1, assert_fails('xxx', []))
|
||||
catch
|
||||
let exp = v:exception
|
||||
endtry
|
||||
call assert_match("E856: assert_fails() second argument", exp)
|
||||
|
||||
try
|
||||
call assert_equal(1, assert_fails('xxx', ['1', '2', '3']))
|
||||
catch
|
||||
let exp = v:exception
|
||||
endtry
|
||||
call assert_match("E856: assert_fails() second argument", exp)
|
||||
|
||||
try
|
||||
call assert_equal(1, assert_fails('xxx', #{one: 1}))
|
||||
catch
|
||||
let exp = v:exception
|
||||
endtry
|
||||
call assert_match("E856: assert_fails() second argument", exp)
|
||||
endfunc
|
||||
|
||||
func Test_assert_fails_in_try_block()
|
||||
|
@@ -66,7 +66,7 @@ ga_concat_esc(garray_T *gap, char_u *p, int clen)
|
||||
case CAR: ga_concat(gap, (char_u *)"\\r"); break;
|
||||
case '\\': ga_concat(gap, (char_u *)"\\\\"); break;
|
||||
default:
|
||||
if (*p < ' ')
|
||||
if (*p < ' ' || *p == 0x7f)
|
||||
{
|
||||
vim_snprintf((char *)buf, NUMBUFLEN, "\\x%02x", *p);
|
||||
ga_concat(gap, buf);
|
||||
@@ -270,12 +270,12 @@ assert_match_common(typval_T *argvars, assert_type_T atype)
|
||||
garray_T ga;
|
||||
char_u buf1[NUMBUFLEN];
|
||||
char_u buf2[NUMBUFLEN];
|
||||
int called_emsg_before = called_emsg;
|
||||
char_u *pat = tv_get_string_buf_chk(&argvars[0], buf1);
|
||||
char_u *text = tv_get_string_buf_chk(&argvars[1], buf2);
|
||||
|
||||
if (pat == NULL || text == NULL)
|
||||
emsg(_(e_invarg));
|
||||
else if (pattern_match(pat, text, FALSE) != (atype == ASSERT_MATCH))
|
||||
if (called_emsg == called_emsg_before
|
||||
&& pattern_match(pat, text, FALSE) != (atype == ASSERT_MATCH))
|
||||
{
|
||||
prepare_assert_error(&ga);
|
||||
fill_assert_error(&ga, &argvars[2], NULL, &argvars[0], &argvars[1],
|
||||
@@ -379,6 +379,7 @@ assert_equalfile(typval_T *argvars)
|
||||
{
|
||||
char_u buf1[NUMBUFLEN];
|
||||
char_u buf2[NUMBUFLEN];
|
||||
int called_emsg_before = called_emsg;
|
||||
char_u *fname1 = tv_get_string_buf_chk(&argvars[0], buf1);
|
||||
char_u *fname2 = tv_get_string_buf_chk(&argvars[1], buf2);
|
||||
garray_T ga;
|
||||
@@ -388,7 +389,7 @@ assert_equalfile(typval_T *argvars)
|
||||
char line2[200];
|
||||
int lineidx = 0;
|
||||
|
||||
if (fname1 == NULL || fname2 == NULL)
|
||||
if (called_emsg > called_emsg_before)
|
||||
return 0;
|
||||
|
||||
IObuff[0] = NUL;
|
||||
|
@@ -754,6 +754,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1199,
|
||||
/**/
|
||||
1198,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user