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