Mercurial > vim
changeset 20679:1af1d8ff2aa8 v8.2.0893
patch 8.2.0893: assert_equalfile() does not take a third argument
Commit: https://github.com/vim/vim/commit/fb517bac2384798bb5142ed1f75f965f93984c0a
Author: Bram Moolenaar <Bram@vim.org>
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)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 03 Jun 2020 20:00:04 +0200 |
parents | f5bc9724bf64 |
children | 85da25f6882a |
files | runtime/doc/eval.txt runtime/doc/testing.txt src/evalfunc.c src/testdir/test_assert.vim src/testing.c src/version.c |
diffstat | 6 files changed, 21 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- 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}]])
--- 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|.
--- 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},
--- 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
--- 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)