diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/testdir/test_functions.vim | 6 | ||||
-rw-r--r-- | src/nvim/testing.c | 9 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/nvim/testdir/test_functions.vim b/src/nvim/testdir/test_functions.vim index b751215b79..fa79aaf6d7 100644 --- a/src/nvim/testdir/test_functions.vim +++ b/src/nvim/testdir/test_functions.vim @@ -2206,6 +2206,12 @@ func Test_range() call assert_equal([0, 1, 2, 3, 4], uniq(range(5))) endfunc +func Test_garbagecollect_now_fails() + let v:testing = 0 + call assert_fails('call test_garbagecollect_now()', 'E1142:') + let v:testing = 1 +endfunc + " Test for the eval() function func Test_eval() call assert_fails("call eval('5 a')", 'E488:') diff --git a/src/nvim/testing.c b/src/nvim/testing.c index 348d5c6e29..45134db14f 100644 --- a/src/nvim/testing.c +++ b/src/nvim/testing.c @@ -14,6 +14,9 @@ # include "testing.c.generated.h" #endif +static char e_calling_test_garbagecollect_now_while_v_testing_is_not_set[] + = N_("E1142: Calling test_garbagecollect_now() while v:testing is not set"); + /// Prepare "gap" for an assert error and add the sourcing position. static void prepare_assert_error(garray_T *gap) { @@ -614,7 +617,11 @@ void f_test_garbagecollect_now(typval_T *argvars, typval_T *rettv, EvalFuncData { // 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); + } } /// "test_write_list_log()" function |