1
0
forked from aniani/vim

patch 9.0.1507: assert message is confusing with boolean result

Problem:    Assert message is confusing with boolean result.  assert_inrange()
            replaces message instead of adding it.
Solution:   Don't put quotes around expected boolean value.  Append message
            for assert_inrange(). (closes #12342, closes #12341)
This commit is contained in:
zeertzjq
2023-05-04 18:58:22 +01:00
committed by Bram Moolenaar
parent 88bb3e0a48
commit 53f5e51628
4 changed files with 25 additions and 33 deletions

View File

@@ -9,11 +9,11 @@ func Test_assert_false()
call assert_equal(0, v:false->assert_false()) call assert_equal(0, v:false->assert_false())
call assert_equal(1, assert_false(123)) call assert_equal(1, assert_false(123))
call assert_match("Expected 'False' but got 123", v:errors[0]) call assert_match("Expected False but got 123", v:errors[0])
call remove(v:errors, 0) call remove(v:errors, 0)
call assert_equal(1, 123->assert_false()) call assert_equal(1, 123->assert_false())
call assert_match("Expected 'False' but got 123", v:errors[0]) call assert_match("Expected False but got 123", v:errors[0])
call remove(v:errors, 0) call remove(v:errors, 0)
endfunc endfunc
@@ -24,11 +24,11 @@ func Test_assert_true()
call assert_equal(0, v:true->assert_true()) call assert_equal(0, v:true->assert_true())
call assert_equal(1, assert_true(0)) call assert_equal(1, assert_true(0))
call assert_match("Expected 'True' but got 0", v:errors[0]) call assert_match("Expected True but got 0", v:errors[0])
call remove(v:errors, 0) call remove(v:errors, 0)
call assert_equal(1, 0->assert_true()) call assert_equal(1, 0->assert_true())
call assert_match("Expected 'True' but got 0", v:errors[0]) call assert_match("Expected True but got 0", v:errors[0])
call remove(v:errors, 0) call remove(v:errors, 0)
endfunc endfunc
@@ -416,8 +416,11 @@ func Test_assert_inrange()
call remove(v:errors, 0) call remove(v:errors, 0)
" Use a custom message " Use a custom message
call assert_equal(1, assert_inrange(5, 7, 8, "Higher"))
call assert_match("Higher: Expected range 5 - 7, but got 8", v:errors[0])
call remove(v:errors, 0)
call assert_equal(1, assert_inrange(5, 7, 8.0, "Higher")) call assert_equal(1, assert_inrange(5, 7, 8.0, "Higher"))
call assert_match("Higher", v:errors[0]) call assert_match("Higher: Expected range 5.0 - 7.0, but got 8.0", v:errors[0])
call remove(v:errors, 0) call remove(v:errors, 0)
" Invalid arguments " Invalid arguments

View File

@@ -223,8 +223,10 @@ fill_assert_error(
} }
else else
{ {
if (atype == ASSERT_FAILS)
ga_concat(gap, (char_u *)"'"); ga_concat(gap, (char_u *)"'");
ga_concat_shorten_esc(gap, exp_str); ga_concat_shorten_esc(gap, exp_str);
if (atype == ASSERT_FAILS)
ga_concat(gap, (char_u *)"'"); ga_concat(gap, (char_u *)"'");
} }
if (atype != ASSERT_NOTEQUAL) if (atype != ASSERT_NOTEQUAL)
@@ -743,7 +745,7 @@ f_assert_fails(typval_T *argvars, typval_T *rettv)
actual_tv.vval.v_string = actual; actual_tv.vval.v_string = actual;
} }
fill_assert_error(&ga, &argvars[2], expected_str, fill_assert_error(&ga, &argvars[2], expected_str,
&argvars[error_found_index], &actual_tv, ASSERT_OTHER); &argvars[error_found_index], &actual_tv, ASSERT_FAILS);
ga_concat(&ga, (char_u *)": "); ga_concat(&ga, (char_u *)": ");
assert_append_cmd_or_arg(&ga, argvars, cmd); assert_append_cmd_or_arg(&ga, argvars, cmd);
assert_error(&ga); assert_error(&ga);
@@ -785,9 +787,7 @@ assert_inrange(typval_T *argvars)
{ {
garray_T ga; garray_T ga;
int error = FALSE; int error = FALSE;
char_u *tofree; char_u expected_str[200];
char msg[200];
char_u numbuf[NUMBUFLEN];
if (argvars[0].v_type == VAR_FLOAT if (argvars[0].v_type == VAR_FLOAT
|| argvars[1].v_type == VAR_FLOAT || argvars[1].v_type == VAR_FLOAT
@@ -800,17 +800,10 @@ assert_inrange(typval_T *argvars)
if (factual < flower || factual > fupper) if (factual < flower || factual > fupper)
{ {
prepare_assert_error(&ga); prepare_assert_error(&ga);
if (argvars[3].v_type != VAR_UNKNOWN) vim_snprintf((char *)expected_str, 200, "range %g - %g,",
{ flower, fupper);
ga_concat(&ga, tv2string(&argvars[3], &tofree, numbuf, 0)); fill_assert_error(&ga, &argvars[3], expected_str, NULL,
vim_free(tofree); &argvars[2], ASSERT_OTHER);
}
else
{
vim_snprintf(msg, 200, "Expected range %g - %g, but got %g",
flower, fupper, factual);
ga_concat(&ga, (char_u *)msg);
}
assert_error(&ga); assert_error(&ga);
ga_clear(&ga); ga_clear(&ga);
return 1; return 1;
@@ -827,17 +820,10 @@ assert_inrange(typval_T *argvars)
if (actual < lower || actual > upper) if (actual < lower || actual > upper)
{ {
prepare_assert_error(&ga); prepare_assert_error(&ga);
if (argvars[3].v_type != VAR_UNKNOWN) vim_snprintf((char *)expected_str, 200, "range %ld - %ld,",
{ (long)lower, (long)upper);
ga_concat(&ga, tv2string(&argvars[3], &tofree, numbuf, 0)); fill_assert_error(&ga, &argvars[3], expected_str, NULL,
vim_free(tofree); &argvars[2], ASSERT_OTHER);
}
else
{
vim_snprintf(msg, 200, "Expected range %ld - %ld, but got %ld",
(long)lower, (long)upper, (long)actual);
ga_concat(&ga, (char_u *)msg);
}
assert_error(&ga); assert_error(&ga);
ga_clear(&ga); ga_clear(&ga);
return 1; return 1;

View File

@@ -695,6 +695,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 */
/**/
1507,
/**/ /**/
1506, 1506,
/**/ /**/

View File

@@ -2254,6 +2254,7 @@ typedef enum {
ASSERT_NOTEQUAL, ASSERT_NOTEQUAL,
ASSERT_MATCH, ASSERT_MATCH,
ASSERT_NOTMATCH, ASSERT_NOTMATCH,
ASSERT_FAILS,
ASSERT_OTHER ASSERT_OTHER
} assert_type_T; } assert_type_T;