summaryrefslogtreecommitdiffstats
path: root/src/eval.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-07-23 15:35:35 +0200
committerBram Moolenaar <Bram@vim.org>2016-07-23 15:35:35 +0200
commit61c04493b00f85d0b97436260a9ef9ab82143b78 (patch)
tree63112a3a41bb8d731093b0f6ba217e0da1d13359 /src/eval.c
parent4658228262f491fcb582d531d4e8e5754b0d5e83 (diff)
patch 7.4.2095v7.4.2095
Problem: Man test fails when run with the GUI. Solution: Adjust for different behavior of GUI. Add assert_inrange().
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/eval.c b/src/eval.c
index 53c188baef..3bc2afdb1f 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -8992,6 +8992,39 @@ assert_match_common(typval_T *argvars, assert_type_T atype)
}
}
+ void
+assert_inrange(typval_T *argvars)
+{
+ garray_T ga;
+ int error = FALSE;
+ varnumber_T lower = get_tv_number_chk(&argvars[0], &error);
+ varnumber_T upper = get_tv_number_chk(&argvars[1], &error);
+ varnumber_T actual = get_tv_number_chk(&argvars[2], &error);
+ char_u *tofree;
+ char msg[200];
+ char_u numbuf[NUMBUFLEN];
+
+ if (error)
+ return;
+ 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);
+ }
+ assert_error(&ga);
+ ga_clear(&ga);
+ }
+}
+
/*
* Common for assert_true() and assert_false().
*/