diff options
-rw-r--r-- | src/nvim/eval.c | 3 | ||||
-rw-r--r-- | src/nvim/version.c | 2 | ||||
-rw-r--r-- | test/functional/legacy/assert_spec.lua | 30 |
3 files changed, 33 insertions, 2 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index f5cffbc3e1..ac0daa226a 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -7667,7 +7667,8 @@ static void f_assert_exception(typval_T *argvars, typval_T *rettv) ga_concat(&ga, (char_u *)"v:exception is not set"); assert_error(&ga); ga_clear(&ga); - } else if (strstr((char *)vimvars[VV_EXCEPTION].vv_str, error) == NULL) { + } else if (error != NULL + && strstr((char *)vimvars[VV_EXCEPTION].vv_str, error) == NULL) { prepare_assert_error(&ga); fill_assert_error(&ga, &argvars[1], NULL, &argvars[0], &vimvars[VV_EXCEPTION].vv_tv); diff --git a/src/nvim/version.c b/src/nvim/version.c index 864aa8d30c..b2c6b332d1 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -558,7 +558,7 @@ static int included_patches[] = { // 1139 NA // 1138 NA 1137, - // 1136, + 1136, // 1135 NA // 1134 NA // 1133 NA diff --git a/test/functional/legacy/assert_spec.lua b/test/functional/legacy/assert_spec.lua index cfa368c361..8da6ee45d7 100644 --- a/test/functional/legacy/assert_spec.lua +++ b/test/functional/legacy/assert_spec.lua @@ -172,4 +172,34 @@ describe('assert function:', function() expected_errors({'command did not fail: call empty("")'}) end) end) + + -- assert_exception({cmd}, [, {error}]) + describe('assert_exception()', function() + it('should assert thrown exceptions properly', function() + source([[ + try + nocommand + catch + call assert_exception('E492') + endtry + ]]) + expected_empty() + end) + + it('should work properly when nested', function() + source([[ + try + nocommand + catch + try + " illegal argument, get NULL for error + call assert_exception([]) + catch + call assert_exception('E730') + endtry + endtry + ]]) + expected_empty() + end) + end) end) |