# HG changeset patch # User Bram Moolenaar # Date 1591207204 -7200 # Node ID 1af1d8ff2aa8c586135ab8869642aa15ebea4c9b # Parent f5bc9724bf6436bee1c639721f17711ab393c8de patch 8.2.0893: assert_equalfile() does not take a third argument Commit: https://github.com/vim/vim/commit/fb517bac2384798bb5142ed1f75f965f93984c0a Author: Bram Moolenaar Date: Wed Jun 3 19:55:35 2020 +0200 patch 8.2.0893: assert_equalfile() does not take a third argument Problem: Assert_equalfile() does not take a third argument. Solution: Implement the third argument. (Gary Johnson) diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -2324,11 +2324,12 @@ argidx() Number current index in the a arglistid([{winnr} [, {tabnr}]]) Number argument list id argv({nr} [, {winid}]) String {nr} entry of the argument list argv([-1, {winid}]) List the argument list +asin({expr}) Float arc sine of {expr} assert_beeps({cmd}) Number assert {cmd} causes a beep assert_equal({exp}, {act} [, {msg}]) Number assert {exp} is equal to {act} -assert_equalfile({fname-one}, {fname-two}) - Number assert file contents is equal +assert_equalfile({fname-one}, {fname-two} [, {msg}]) + Number assert file contents are equal assert_exception({error} [, {msg}]) Number assert {error} is in v:exception assert_fails({cmd} [, {error} [, {msg}]]) diff --git a/runtime/doc/testing.txt b/runtime/doc/testing.txt --- a/runtime/doc/testing.txt +++ b/runtime/doc/testing.txt @@ -263,9 +263,8 @@ assert_equal({expected}, {actual} [, {ms Can also be used as a |method|: > mylist->assert_equal([1, 2, 3]) - < *assert_equalfile()* -assert_equalfile({fname-one}, {fname-two}) +assert_equalfile({fname-one}, {fname-two} [, {msg}]) When the files {fname-one} and {fname-two} do not contain exactly the same text an error message is added to |v:errors|. Also see |assert-return|. @@ -276,7 +275,6 @@ assert_equalfile({fname-one}, {fname-two Can also be used as a |method|: > GetLog()->assert_equalfile('expected.log') - assert_exception({error} [, {msg}]) *assert_exception()* When v:exception does not contain the string {error} an error message is added to |v:errors|. Also see |assert-return|. diff --git a/src/evalfunc.c b/src/evalfunc.c --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -419,7 +419,7 @@ static funcentry_T global_functions[] = {"asin", 1, 1, FEARG_1, ret_float, FLOAT_FUNC(f_asin)}, {"assert_beeps", 1, 2, FEARG_1, ret_number, f_assert_beeps}, {"assert_equal", 2, 3, FEARG_2, ret_number, f_assert_equal}, - {"assert_equalfile", 2, 2, FEARG_1, ret_number, f_assert_equalfile}, + {"assert_equalfile", 2, 3, FEARG_1, ret_number, f_assert_equalfile}, {"assert_exception", 1, 2, 0, ret_number, f_assert_exception}, {"assert_fails", 1, 3, FEARG_1, ret_number, f_assert_fails}, {"assert_false", 1, 2, FEARG_1, ret_number, f_assert_false}, diff --git a/src/testdir/test_assert.vim b/src/testdir/test_assert.vim --- a/src/testdir/test_assert.vim +++ b/src/testdir/test_assert.vim @@ -81,6 +81,10 @@ func Test_assert_equalfile() call assert_match("difference at byte 4", v:errors[0]) call remove(v:errors, 0) + call assert_equal(1, assert_equalfile('Xone', 'Xtwo', 'a message')) + call assert_match("a message: difference at byte 4", v:errors[0]) + call remove(v:errors, 0) + call delete('Xone') call delete('Xtwo') endfunc diff --git a/src/testing.c b/src/testing.c --- a/src/testing.c +++ b/src/testing.c @@ -362,6 +362,15 @@ assert_equalfile(typval_T *argvars) if (IObuff[0] != NUL) { prepare_assert_error(&ga); + if (argvars[2].v_type != VAR_UNKNOWN) + { + char_u numbuf[NUMBUFLEN]; + char_u *tofree; + + ga_concat(&ga, echo_string(&argvars[2], &tofree, numbuf, 0)); + vim_free(tofree); + ga_concat(&ga, (char_u *)": "); + } ga_concat(&ga, IObuff); assert_error(&ga); ga_clear(&ga); @@ -371,7 +380,7 @@ assert_equalfile(typval_T *argvars) } /* - * "assert_equalfile(fname-one, fname-two)" function + * "assert_equalfile(fname-one, fname-two[, msg])" function */ void f_assert_equalfile(typval_T *argvars, typval_T *rettv) diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -747,6 +747,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 893, +/**/ 892, /**/ 891,