Patch 8.0.0254
Problem: When using an assert function one can either specify a message or
get a message about what failed, not both.
Solution: Concatenate the error with the message.
Files: src/eval.c, src/testdir/test_assert.vim
*** ../vim-8.0.0253/src/eval.c 2017-01-22 18:34:53.680030808 +0100
--- src/eval.c 2017-01-28 18:07:02.491425259 +0100
***************
*** 9240,9274 ****
if (opt_msg_tv->v_type != VAR_UNKNOWN)
{
! ga_concat(gap, tv2string(opt_msg_tv, &tofree, numbuf, 0));
vim_free(tofree);
}
else
{
! if (atype == ASSERT_MATCH || atype == ASSERT_NOTMATCH)
! ga_concat(gap, (char_u *)"Pattern ");
! else if (atype == ASSERT_NOTEQUAL)
! ga_concat(gap, (char_u *)"Expected not equal to ");
! else
! ga_concat(gap, (char_u *)"Expected ");
! if (exp_str == NULL)
! {
! ga_concat_esc(gap, tv2string(exp_tv, &tofree, numbuf, 0));
! vim_free(tofree);
! }
else
! ga_concat_esc(gap, exp_str);
! if (atype != ASSERT_NOTEQUAL)
! {
! if (atype == ASSERT_MATCH)
! ga_concat(gap, (char_u *)" does not match ");
! else if (atype == ASSERT_NOTMATCH)
! ga_concat(gap, (char_u *)" does match ");
! else
! ga_concat(gap, (char_u *)" but got ");
! ga_concat_esc(gap, tv2string(got_tv, &tofree, numbuf, 0));
! vim_free(tofree);
! }
}
}
--- 9240,9273 ----
if (opt_msg_tv->v_type != VAR_UNKNOWN)
{
! ga_concat(gap, echo_string(opt_msg_tv, &tofree, numbuf, 0));
vim_free(tofree);
+ ga_concat(gap, (char_u *)": ");
}
+
+ if (atype == ASSERT_MATCH || atype == ASSERT_NOTMATCH)
+ ga_concat(gap, (char_u *)"Pattern ");
+ else if (atype == ASSERT_NOTEQUAL)
+ ga_concat(gap, (char_u *)"Expected not equal to ");
else
+ ga_concat(gap, (char_u *)"Expected ");
+ if (exp_str == NULL)
{
! ga_concat_esc(gap, tv2string(exp_tv, &tofree, numbuf, 0));
! vim_free(tofree);
! }
! else
! ga_concat_esc(gap, exp_str);
! if (atype != ASSERT_NOTEQUAL)
! {
! if (atype == ASSERT_MATCH)
! ga_concat(gap, (char_u *)" does not match ");
! else if (atype == ASSERT_NOTMATCH)
! ga_concat(gap, (char_u *)" does match ");
else
! ga_concat(gap, (char_u *)" but got ");
! ga_concat_esc(gap, tv2string(got_tv, &tofree, numbuf, 0));
! vim_free(tofree);
}
}
*** ../vim-8.0.0253/src/testdir/test_assert.vim 2017-01-14 20:06:11.123087733
+0100
--- src/testdir/test_assert.vim 2017-01-28 18:05:40.799941919 +0100
***************
*** 121,126 ****
--- 121,132 ----
call assert_fails('call assert_inrange(1, 1)', 'E119:')
endfunc
+ func Test_assert_with_msg()
+ call assert_equal('foo', 'bar', 'testing')
+ call assert_match("testing: Expected 'foo' but got 'bar'", v:errors[0])
+ call remove(v:errors, 0)
+ endfunc
+
func Test_user_is_happy()
smile
sleep 300m
*** ../vim-8.0.0253/src/version.c 2017-01-28 17:11:09.724620245 +0100
--- src/version.c 2017-01-28 17:20:32.673057834 +0100
***************
*** 766,767 ****
--- 766,769 ----
{ /* Add new patch number below this line */
+ /**/
+ 254,
/**/
--
FATHER: You only killed the bride's father - that's all -
LAUNCELOT: Oh dear, I didn't really mean to...
FATHER: Didn't mean to? You put your sword right through his head!
LAUNCELOT: Gosh - Is he all right?
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.