diff options
author | ZyX <kp-pav@yandex.ru> | 2015-07-26 01:52:50 +0300 |
---|---|---|
committer | ZyX <kp-pav@yandex.ru> | 2015-10-08 22:00:15 +0300 |
commit | e2994a3c62265a26a632ed7cd4d11ce4fb711586 (patch) | |
tree | dbc0d392d00e93b7bdd4e7a592bfaa6118bf2d2d /test/functional/shada/helpers.lua | |
parent | b7ca976f730b4648d4f1cf48ea894ee0a8ae8e72 (diff) | |
download | rneovim-e2994a3c62265a26a632ed7cd4d11ce4fb711586.tar.gz rneovim-e2994a3c62265a26a632ed7cd4d11ce4fb711586.tar.bz2 rneovim-e2994a3c62265a26a632ed7cd4d11ce4fb711586.zip |
shada,functests: Test how ShaDa support code reacts on errors
Some notes:
- Replaced msgpack_unpacker usage with regular xmalloc’ed buffer. Also since
msgpack_unpack_next (as well as msgpack_unpacker_next) is not ever going to
return MSGPACK_UNPACK_EXTRA_BYTES this condition was checked manually.
Function that does return this status is msgpack_unpack, but it is marked as
obsolete.
- Zero type is checked prior to main switch in shada_read_next_item because
otherwise check would be skipped.
- Zeroing entry at the start of shada_read_next_item makes it safer.
- dedent('') does not work.
- v:oldfiles list is only replaced with bang, if it is NULL or empty.
Diffstat (limited to 'test/functional/shada/helpers.lua')
-rw-r--r-- | test/functional/shada/helpers.lua | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/test/functional/shada/helpers.lua b/test/functional/shada/helpers.lua index 7e93fcb915..909fcd62e6 100644 --- a/test/functional/shada/helpers.lua +++ b/test/functional/shada/helpers.lua @@ -1,6 +1,7 @@ local helpers = require('test.functional.helpers') -local spawn, set_session, nvim, nvim_prog = - helpers.spawn, helpers.set_session, helpers.nvim, helpers.nvim_prog +local spawn, set_session, nvim, nvim_prog, nvim_command, nvim_eval = + helpers.spawn, helpers.set_session, helpers.nvim, helpers.nvim_prog, + helpers.command, helpers.eval local tmpname = os.tmpname() local additional_cmd = '' @@ -46,8 +47,22 @@ local clear = function() set_additional_cmd('') end +local exc_exec = function(cmd) + nvim_command(([[ + try + execute "%s" + catch + let g:__exception = v:exception + endtry + ]]):format(cmd:gsub('\n', '\\n'):gsub('[\\"]', '\\%0'))) + local ret = nvim_eval('get(g:, "__exception", 0)') + nvim_command('unlet! g:__exception') + return ret +end + return { reset=reset, set_additional_cmd=set_additional_cmd, clear=clear, + exc_exec=exc_exec, } |