summaryrefslogtreecommitdiffstats
path: root/src/testing.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-12-23 22:59:18 +0100
committerBram Moolenaar <Bram@vim.org>2019-12-23 22:59:18 +0100
commit53989554a44caca0964376d60297f08ec257c53c (patch)
tree34d2140d4201e015661344b05ffb4c2d9aed97ff /src/testing.c
parent70188f5b23ea7efec7adaf74e0af797d1bb1afe8 (diff)
patch 8.2.0035: saving and restoring called_emsg is clumsyv8.2.0035
Problem: Saving and restoring called_emsg is clumsy. Solution: Count the number of error messages.
Diffstat (limited to 'src/testing.c')
-rw-r--r--src/testing.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/testing.c b/src/testing.c
index f879f1ea9c..569a57c8e8 100644
--- a/src/testing.c
+++ b/src/testing.c
@@ -424,15 +424,15 @@ f_assert_fails(typval_T *argvars, typval_T *rettv)
char_u *cmd = tv_get_string_chk(&argvars[0]);
garray_T ga;
int save_trylevel = trylevel;
+ int called_emsg_before = called_emsg;
// trylevel must be zero for a ":throw" command to be considered failed
trylevel = 0;
- called_emsg = FALSE;
suppress_errthrow = TRUE;
emsg_silent = TRUE;
do_cmdline_cmd(cmd);
- if (!called_emsg)
+ if (called_emsg == called_emsg_before)
{
prepare_assert_error(&ga);
ga_concat(&ga, (char_u *)"command did not fail: ");
@@ -461,7 +461,6 @@ f_assert_fails(typval_T *argvars, typval_T *rettv)
}
trylevel = save_trylevel;
- called_emsg = FALSE;
suppress_errthrow = FALSE;
emsg_silent = FALSE;
emsg_on_display = FALSE;