diff options
author | Bram Moolenaar <Bram@vim.org> | 2016-07-23 15:35:35 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2016-07-23 15:35:35 +0200 |
commit | 61c04493b00f85d0b97436260a9ef9ab82143b78 (patch) | |
tree | 63112a3a41bb8d731093b0f6ba217e0da1d13359 /src/eval.c | |
parent | 4658228262f491fcb582d531d4e8e5754b0d5e83 (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.c | 33 |
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(). */ |