diff options
author | Bram Moolenaar <Bram@vim.org> | 2018-04-28 16:56:53 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2018-04-28 16:56:53 +0200 |
commit | 65a5464985f980d2bbbf4e14d39d416dce065ec7 (patch) | |
tree | 0db9a9e8471d385f544a6191b123bc01e895f9c8 /src/eval.c | |
parent | 9b25af36204c0511eab08d621688f0f2008fc68e (diff) |
patch 8.0.1770: assert functions don't return anythingv8.0.1770
Problem: Assert functions don't return anything.
Solution: Return non-zero when the assertion fails.
Diffstat (limited to 'src/eval.c')
-rw-r--r-- | src/eval.c | 46 |
1 files changed, 34 insertions, 12 deletions
diff --git a/src/eval.c b/src/eval.c index cfeba2edaa..63f8bde329 100644 --- a/src/eval.c +++ b/src/eval.c @@ -8815,7 +8815,7 @@ assert_error(garray_T *gap) list_append_string(vimvars[VV_ERRORS].vv_list, gap->ga_data, gap->ga_len); } - void + int assert_equal_common(typval_T *argvars, assert_type_T atype) { garray_T ga; @@ -8828,10 +8828,12 @@ assert_equal_common(typval_T *argvars, assert_type_T atype) atype); assert_error(&ga); ga_clear(&ga); + return 1; } + return 0; } - void + int assert_equalfile(typval_T *argvars) { char_u buf1[NUMBUFLEN]; @@ -8843,7 +8845,7 @@ assert_equalfile(typval_T *argvars) FILE *fd2; if (fname1 == NULL || fname2 == NULL) - return; + return 0; IObuff[0] = NUL; fd1 = mch_fopen((char *)fname1, READBIN); @@ -8897,10 +8899,12 @@ assert_equalfile(typval_T *argvars) ga_concat(&ga, IObuff); assert_error(&ga); ga_clear(&ga); + return 1; } + return 0; } - void + int assert_match_common(typval_T *argvars, assert_type_T atype) { garray_T ga; @@ -8918,10 +8922,12 @@ assert_match_common(typval_T *argvars, assert_type_T atype) atype); assert_error(&ga); ga_clear(&ga); + return 1; } + return 0; } - void + int assert_inrange(typval_T *argvars) { garray_T ga; @@ -8934,7 +8940,7 @@ assert_inrange(typval_T *argvars) char_u numbuf[NUMBUFLEN]; if (error) - return; + return 0; if (actual < lower || actual > upper) { prepare_assert_error(&ga); @@ -8951,13 +8957,16 @@ assert_inrange(typval_T *argvars) } assert_error(&ga); ga_clear(&ga); + return 1; } + return 0; } /* * Common for assert_true() and assert_false(). + * Return non-zero for failure. */ - void + int assert_bool(typval_T *argvars, int isTrue) { int error = FALSE; @@ -8965,7 +8974,7 @@ assert_bool(typval_T *argvars, int isTrue) if (argvars[0].v_type == VAR_SPECIAL && argvars[0].vval.v_number == (isTrue ? VVAL_TRUE : VVAL_FALSE)) - return; + return 0; if (argvars[0].v_type != VAR_NUMBER || (get_tv_number_chk(&argvars[0], &error) == 0) == isTrue || error) @@ -8976,10 +8985,12 @@ assert_bool(typval_T *argvars, int isTrue) NULL, &argvars[0], ASSERT_OTHER); assert_error(&ga); ga_clear(&ga); + return 1; } + return 0; } - void + int assert_report(typval_T *argvars) { garray_T ga; @@ -8988,9 +8999,10 @@ assert_report(typval_T *argvars) ga_concat(&ga, get_tv_string(&argvars[0])); assert_error(&ga); ga_clear(&ga); + return 1; } - void + int assert_exception(typval_T *argvars) { garray_T ga; @@ -9002,6 +9014,7 @@ assert_exception(typval_T *argvars) ga_concat(&ga, (char_u *)"v:exception is not set"); assert_error(&ga); ga_clear(&ga); + return 1; } else if (error != NULL && strstr((char *)vimvars[VV_EXCEPTION].vv_str, (char *)error) == NULL) @@ -9011,14 +9024,17 @@ assert_exception(typval_T *argvars) &vimvars[VV_EXCEPTION].vv_tv, ASSERT_OTHER); assert_error(&ga); ga_clear(&ga); + return 1; } + return 0; } - void + int assert_beeps(typval_T *argvars) { char_u *cmd = get_tv_string_chk(&argvars[0]); garray_T ga; + int ret = 0; called_vim_beep = FALSE; suppress_errthrow = TRUE; @@ -9031,17 +9047,20 @@ assert_beeps(typval_T *argvars) ga_concat(&ga, cmd); assert_error(&ga); ga_clear(&ga); + ret = 1; } suppress_errthrow = FALSE; emsg_on_display = FALSE; + return ret; } - void + int assert_fails(typval_T *argvars) { char_u *cmd = get_tv_string_chk(&argvars[0]); garray_T ga; + int ret = 0; called_emsg = FALSE; suppress_errthrow = TRUE; @@ -9054,6 +9073,7 @@ assert_fails(typval_T *argvars) ga_concat(&ga, cmd); assert_error(&ga); ga_clear(&ga); + ret = 1; } else if (argvars[1].v_type != VAR_UNKNOWN) { @@ -9068,6 +9088,7 @@ assert_fails(typval_T *argvars) &vimvars[VV_ERRMSG].vv_tv, ASSERT_OTHER); assert_error(&ga); ga_clear(&ga); + ret = 1; } } @@ -9076,6 +9097,7 @@ assert_fails(typval_T *argvars) emsg_silent = FALSE; emsg_on_display = FALSE; set_vim_var_string(VV_ERRMSG, NULL, 0); + return ret; } /* |