# HG changeset patch # User Bram Moolenaar # Date 1643313604 -3600 # Node ID 557a50b0d10b01a8f9f5ccc10583b66c2a5983e9 # Parent 2689052e59cdc1c9e15d13632aa2fe086687ab80 patch 8.2.4234: test_garbagecollect_now() does not check v:testing Commit: https://github.com/vim/vim/commit/b3d83980d2ac0f7a25314270416f17af874ca269 Author: Bram Moolenaar Date: Thu Jan 27 19:59:47 2022 +0000 patch 8.2.4234: test_garbagecollect_now() does not check v:testing Problem: test_garbagecollect_now() does not check v:testing as documented. Solution: Give an error if v:testing is not set. diff --git a/src/errors.h b/src/errors.h --- a/src/errors.h +++ b/src/errors.h @@ -2909,7 +2909,8 @@ EXTERN char e_for_argument_must_be_seque INIT(= N_("E1140: :for argument must be a sequence of lists")); EXTERN char e_indexable_type_required[] INIT(= N_("E1141: Indexable type required")); -// E1142 unused +EXTERN char e_calling_test_garbagecollect_now_while_v_testing_is_not_set[] + INIT(= N_("E1142: Calling test_garbagecollect_now() while v:testing is not set")); EXTERN char e_empty_expression_str[] INIT(= N_("E1143: Empty expression: \"%s\"")); EXTERN char e_command_str_not_followed_by_white_space_str[] diff --git a/src/testdir/test_functions.vim b/src/testdir/test_functions.vim --- a/src/testdir/test_functions.vim +++ b/src/testdir/test_functions.vim @@ -2663,6 +2663,12 @@ func Test_range() call assert_fails('let x=range(1, 4, [])', 'E745:') endfunc +func Test_garbagecollect_now_fails() + let v:testing = 0 + call assert_fails('call test_garbagecollect_now()', 'E1142:') + let v:testing = 1 +endfunc + func Test_echoraw() CheckScreendump diff --git a/src/testing.c b/src/testing.c --- a/src/testing.c +++ b/src/testing.c @@ -1153,7 +1153,10 @@ f_test_garbagecollect_now(typval_T *argv { // This is dangerous, any Lists and Dicts used internally may be freed // while still in use. - garbage_collect(TRUE); + if (!get_vim_var_nr(VV_TESTING)) + emsg(_(e_calling_test_garbagecollect_now_while_v_testing_is_not_set)); + else + garbage_collect(TRUE); } /* diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 4234, +/**/ 4233, /**/ 4232,