@@ -473,9 +473,9 @@ static void f_argc __ARGS((typval_T *argvars, typval_T *rettv));
473473static void f_argidx __ARGS((typval_T *argvars, typval_T *rettv));
474474static void f_arglistid __ARGS((typval_T *argvars, typval_T *rettv));
475475static void f_argv __ARGS((typval_T *argvars, typval_T *rettv));
476- static void f_assertEqual __ARGS((typval_T *argvars, typval_T *rettv));
477- static void f_assertFalse __ARGS((typval_T *argvars, typval_T *rettv));
478- static void f_assertTrue __ARGS((typval_T *argvars, typval_T *rettv));
476+ static void f_assert_equal __ARGS((typval_T *argvars, typval_T *rettv));
477+ static void f_assert_false __ARGS((typval_T *argvars, typval_T *rettv));
478+ static void f_assert_true __ARGS((typval_T *argvars, typval_T *rettv));
479479#ifdef FEAT_FLOAT
480480static void f_asin __ARGS((typval_T *argvars, typval_T *rettv));
481481static void f_atan __ARGS((typval_T *argvars, typval_T *rettv));
@@ -8072,9 +8072,9 @@ static struct fst
80728072 {"argidx", 0, 0, f_argidx},
80738073 {"arglistid", 0, 2, f_arglistid},
80748074 {"argv", 0, 1, f_argv},
8075- {"assertEqual ", 2, 3, f_assertEqual },
8076- {"assertFalse ", 1, 2, f_assertFalse },
8077- {"assertTrue ", 1, 2, f_assertTrue },
8075+ {"assert_equal ", 2, 3, f_assert_equal },
8076+ {"assert_false ", 1, 2, f_assert_false },
8077+ {"assert_true ", 1, 2, f_assert_true },
80788078#ifdef FEAT_FLOAT
80798079 {"asin", 1, 1, f_asin}, /* WJMc */
80808080 {"atan", 1, 1, f_atan},
@@ -9131,111 +9131,140 @@ f_argv(argvars, rettv)
91319131 alist_name(&ARGLIST[idx]), -1);
91329132}
91339133
9134- static void assertError __ARGS((garray_T *gap));
9135- static void prepareForAssertError __ARGS((garray_T*gap));
9136- static void assertBool __ARGS((typval_T *argvars, int isTrue));
9134+ static void prepare_assert_error __ARGS((garray_T*gap));
9135+ static void fill_assert_error __ARGS((garray_T *gap, typval_T *opt_msg_tv, char_u *exp_str, typval_T *exp_tv, typval_T *got_tv));
9136+ static void assert_error __ARGS((garray_T *gap));
9137+ static void assert_bool __ARGS((typval_T *argvars, int isTrue));
91379138
91389139/*
9139- * Add an assert error to v:errors .
9140+ * Prepare "gap" for an assert error and add the sourcing position .
91409141 */
91419142 static void
9142- assertError (gap)
9143+ prepare_assert_error (gap)
91439144 garray_T *gap;
91449145{
9145- struct vimvar *vp = &vimvars[VV_ERRORS ];
9146+ char buf[NUMBUFLEN ];
91469147
9147- if (vp->vv_type != VAR_LIST || vimvars[VV_ERRORS].vv_list == NULL)
9148- /* Make sure v:errors is a list. */
9149- set_vim_var_list(VV_ERRORS, list_alloc());
9150- list_append_string(vimvars[VV_ERRORS].vv_list, gap->ga_data, gap->ga_len);
9148+ ga_init2(gap, 1, 100);
9149+ ga_concat(gap, sourcing_name);
9150+ sprintf(buf, " line %ld", (long)sourcing_lnum);
9151+ ga_concat(gap, (char_u *)buf);
9152+ ga_concat(gap, (char_u *)": ");
91519153}
91529154
9155+ /*
9156+ * Fill "gap" with information about an assert error.
9157+ */
91539158 static void
9154- prepareForAssertError (gap)
9159+ fill_assert_error (gap, opt_msg_tv, exp_str, exp_tv, got_tv )
91559160 garray_T *gap;
9161+ typval_T *opt_msg_tv;
9162+ char_u *exp_str;
9163+ typval_T *exp_tv;
9164+ typval_T *got_tv;
91569165{
9157- char buf[NUMBUFLEN];
9166+ char_u numbuf[NUMBUFLEN];
9167+ char_u *tofree;
91589168
9159- ga_init2(gap, 1, 100);
9160- ga_concat(gap, sourcing_name);
9161- sprintf(buf, " line %ld", (long)sourcing_lnum);
9162- ga_concat(gap, (char_u *)buf);
9169+ if (opt_msg_tv->v_type != VAR_UNKNOWN)
9170+ {
9171+ ga_concat(gap, tv2string(opt_msg_tv, &tofree, numbuf, 0));
9172+ vim_free(tofree);
9173+ }
9174+ else
9175+ {
9176+ ga_concat(gap, (char_u *)"Expected ");
9177+ if (exp_str == NULL)
9178+ {
9179+ ga_concat(gap, tv2string(exp_tv, &tofree, numbuf, 0));
9180+ vim_free(tofree);
9181+ }
9182+ else
9183+ ga_concat(gap, exp_str);
9184+ ga_concat(gap, (char_u *)" but got ");
9185+ ga_concat(gap, tv2string(got_tv, &tofree, numbuf, 0));
9186+ vim_free(tofree);
9187+ }
91639188}
91649189
91659190/*
9166- * "assertEqual(expected, actual[, msg])" function
9191+ * Add an assert error to v:errors.
91679192 */
91689193 static void
9169- f_assertEqual(argvars, rettv)
9194+ assert_error(gap)
9195+ garray_T *gap;
9196+ {
9197+ struct vimvar *vp = &vimvars[VV_ERRORS];
9198+
9199+ if (vp->vv_type != VAR_LIST || vimvars[VV_ERRORS].vv_list == NULL)
9200+ /* Make sure v:errors is a list. */
9201+ set_vim_var_list(VV_ERRORS, list_alloc());
9202+ list_append_string(vimvars[VV_ERRORS].vv_list, gap->ga_data, gap->ga_len);
9203+ }
9204+
9205+ /*
9206+ * "assert_equal(expected, actual[, msg])" function
9207+ */
9208+ static void
9209+ f_assert_equal(argvars, rettv)
91709210 typval_T *argvars;
91719211 typval_T *rettv UNUSED;
91729212{
91739213 garray_T ga;
9174- char_u *tofree;
9175- char_u numbuf[NUMBUFLEN];
91769214
91779215 if (!tv_equal(&argvars[0], &argvars[1], FALSE, FALSE))
91789216 {
9179- prepareForAssertError(&ga);
9180- ga_concat(&ga, (char_u *)": Expected ");
9181- ga_concat(&ga, tv2string(&argvars[0], &tofree, numbuf, 0));
9182- vim_free(tofree);
9183- ga_concat(&ga, (char_u *)" but got ");
9184- ga_concat(&ga, tv2string(&argvars[1], &tofree, numbuf, 0));
9185- vim_free(tofree);
9186- assertError(&ga);
9217+ prepare_assert_error(&ga);
9218+ fill_assert_error(&ga, &argvars[2], NULL, &argvars[0], &argvars[1]);
9219+ assert_error(&ga);
91879220 ga_clear(&ga);
91889221 }
91899222}
91909223
9224+ /*
9225+ * Common for assert_true() and assert_false().
9226+ */
91919227 static void
9192- assertBool (argvars, isTrue)
9228+ assert_bool (argvars, isTrue)
91939229 typval_T *argvars;
91949230 int isTrue;
91959231{
91969232 int error = FALSE;
91979233 garray_T ga;
9198- char_u *tofree;
9199- char_u numbuf[NUMBUFLEN];
92009234
92019235 if (argvars[0].v_type != VAR_NUMBER
92029236 || (get_tv_number_chk(&argvars[0], &error) == 0) == isTrue
92039237 || error)
92049238 {
9205- prepareForAssertError(&ga);
9206- ga_concat(&ga, (char_u *)": Expected ");
9207- if (isTrue)
9208- ga_concat(&ga, (char_u *)"True ");
9209- else
9210- ga_concat(&ga, (char_u *)"False ");
9211- ga_concat(&ga, (char_u *)"but got ");
9212- ga_concat(&ga, tv2string(&argvars[0], &tofree, numbuf, 0));
9213- vim_free(tofree);
9214- assertError(&ga);
9239+ prepare_assert_error(&ga);
9240+ fill_assert_error(&ga, &argvars[1],
9241+ (char_u *)(isTrue ? "True " : "False "),
9242+ NULL, &argvars[0]);
9243+ assert_error(&ga);
92159244 ga_clear(&ga);
92169245 }
92179246}
92189247
92199248/*
9220- * "assertFalse (actual[, msg])" function
9249+ * "assert_false (actual[, msg])" function
92219250 */
92229251 static void
9223- f_assertFalse (argvars, rettv)
9252+ f_assert_false (argvars, rettv)
92249253 typval_T *argvars;
92259254 typval_T *rettv UNUSED;
92269255{
9227- assertBool (argvars, FALSE);
9256+ assert_bool (argvars, FALSE);
92289257}
92299258
92309259/*
9231- * "assertTrue (actual[, msg])" function
9260+ * "assert_true (actual[, msg])" function
92329261 */
92339262 static void
9234- f_assertTrue (argvars, rettv)
9263+ f_assert_true (argvars, rettv)
92359264 typval_T *argvars;
92369265 typval_T *rettv UNUSED;
92379266{
9238- assertBool (argvars, TRUE);
9267+ assert_bool (argvars, TRUE);
92399268}
92409269
92419270#ifdef FEAT_FLOAT
0 commit comments