diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2019-09-01 15:51:02 -0700 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2019-09-01 22:49:33 -0700 |
commit | 78ec7981c8e931fe72998b0cbe144304d6506803 (patch) | |
tree | f2a8fc75f4724a62c8990d63b9a6261a4fb70a72 | |
parent | c062149d5bee8ae12d1bb3280e8ad01b1c6e9461 (diff) | |
download | rneovim-78ec7981c8e931fe72998b0cbe144304d6506803.tar.gz rneovim-78ec7981c8e931fe72998b0cbe144304d6506803.tar.bz2 rneovim-78ec7981c8e931fe72998b0cbe144304d6506803.zip |
screen.lua: dump payload on handler failure
For debugging failures like:
test/functional/helpers.lua:240: test/functional/ui/screen.lua:898:
bad argument #1 to 'unpack' (table expected, got number)
test/functional/helpers.lua:240: test/functional/ui/screen.lua:708:
attempt to index local 'item' (a number value)
ref #10804
-rw-r--r-- | test/functional/helpers.lua | 4 | ||||
-rw-r--r-- | test/functional/ui/screen.lua | 7 |
2 files changed, 8 insertions, 3 deletions
diff --git a/test/functional/helpers.lua b/test/functional/helpers.lua index 73f3c4c917..c718a37021 100644 --- a/test/functional/helpers.lua +++ b/test/functional/helpers.lua @@ -304,7 +304,7 @@ local function nvim_feed(input) local written = module.request('nvim_input', input) if written == nil then module.assert_alive() - error('nvim_input returned nil (Nvim process terminated?)') + error('crash? (nvim_input returned nil)') end input = input:sub(written + 1) end @@ -592,7 +592,7 @@ end -- Checks that the Nvim session did not terminate. function module.assert_alive() - eq(2, module.eval('1+1')) + assert(2 == module.eval('1+1'), 'crash? request failed') end local function do_rmdir(path) diff --git a/test/functional/ui/screen.lua b/test/functional/ui/screen.lua index 02be714e0d..0e3b903398 100644 --- a/test/functional/ui/screen.lua +++ b/test/functional/ui/screen.lua @@ -615,7 +615,12 @@ function Screen:_redraw(updates) local handler_name = '_handle_'..method local handler = self[handler_name] if handler ~= nil then - handler(self, unpack(update[i])) + local status, res = pcall(handler, self, unpack(update[i])) + if not status then + error(handler_name..' failed' + ..'\n payload: '..inspect(update) + ..'\n error: '..tostring(res)) + end else assert(self._on_event, "Add Screen:"..handler_name.." or call Screen:set_on_event_handler") |