diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2019-06-29 20:15:12 +0200 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2019-08-05 13:19:44 +0200 |
commit | d3a7bdefb0782179433f42f8be8a35816a04f68e (patch) | |
tree | df8992fbe0d92ba525166f436bf625e44a6c37c8 /test/functional/lua/overrides_spec.lua | |
parent | 4c35e6fe6734050b2e633aba330b0e389835fbc4 (diff) | |
download | rneovim-d3a7bdefb0782179433f42f8be8a35816a04f68e.tar.gz rneovim-d3a7bdefb0782179433f42f8be8a35816a04f68e.tar.bz2 rneovim-d3a7bdefb0782179433f42f8be8a35816a04f68e.zip |
lua: immediate-callback safe print()
Diffstat (limited to 'test/functional/lua/overrides_spec.lua')
-rw-r--r-- | test/functional/lua/overrides_spec.lua | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/test/functional/lua/overrides_spec.lua b/test/functional/lua/overrides_spec.lua index 8f318e3503..c0541eeae9 100644 --- a/test/functional/lua/overrides_spec.lua +++ b/test/functional/lua/overrides_spec.lua @@ -14,6 +14,7 @@ local command = helpers.command local write_file = helpers.write_file local redir_exec = helpers.redir_exec local alter_slashes = helpers.alter_slashes +local exec_lua = helpers.exec_lua local screen @@ -53,11 +54,11 @@ describe('print', function() v_tblout = setmetatable({}, meta_tblout) ]]) eq('', redir_exec('luafile ' .. fname)) - eq('\nE5114: Error while converting print argument #2: [NULL]', + eq('\nE5105: Error while calling lua chunk: E5114: Error while converting print argument #2: [NULL]', redir_exec('lua print("foo", v_nilerr, "bar")')) - eq('\nE5114: Error while converting print argument #2: Xtest-functional-lua-overrides-luafile:2: abc', + eq('\nE5105: Error while calling lua chunk: E5114: Error while converting print argument #2: Xtest-functional-lua-overrides-luafile:2: abc', redir_exec('lua print("foo", v_abcerr, "bar")')) - eq('\nE5114: Error while converting print argument #2: <Unknown error: lua_tolstring returned NULL for tostring result>', + eq('\nE5105: Error while calling lua chunk: E5114: Error while converting print argument #2: <Unknown error: lua_tolstring returned NULL for tostring result>', redir_exec('lua print("foo", v_tblout, "bar")')) end) it('prints strings with NULs and NLs correctly', function() @@ -76,6 +77,29 @@ describe('print', function() eq('\nabc ', redir_exec('lua print("abc", "")')) eq('\nabc def', redir_exec('lua print("abc", "", "def")')) end) + it('defers printing in luv event handlers', function() + exec_lua([[ + local cmd = ... + function test() + local timer = vim.loop.new_timer() + local done = false + timer:start(10, 0, function() + print("very fast") + timer:close() + done = true + end) + -- be kind to slow travis OS X jobs: + -- loop until we know for sure the callback has been executed + while not done do + os.execute(cmd) + vim.loop.run("nowait") -- fake os_breakcheck() + end + print("very slow") + vim.api.nvim_command("sleep 1m") -- force deferred event processing + end + ]], (iswin() and "timeout 1") or "sleep 0.1") + eq('\nvery slow\nvery fast',redir_exec('lua test()')) + end) end) describe('debug.debug', function() |