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)
--- 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,