diff options
author | shadmansaleh <shadmansaleh3@gmail.com> | 2021-06-20 23:07:04 +0600 |
---|---|---|
committer | shadmansaleh <shadmansaleh3@gmail.com> | 2021-06-21 13:07:05 +0600 |
commit | b4ac8780267d9164a84deaec27fbc6260f765514 (patch) | |
tree | e9a4454533f545ff30858e3414be828a1c64b172 /test/functional/ex_cmds/source_spec.lua | |
parent | b4a216f7ed417e2f1afa321883da1f9fac921aac (diff) | |
download | rneovim-b4ac8780267d9164a84deaec27fbc6260f765514.tar.gz rneovim-b4ac8780267d9164a84deaec27fbc6260f765514.tar.bz2 rneovim-b4ac8780267d9164a84deaec27fbc6260f765514.zip |
fix(source): Source giving E484 & parsing error at line 1 for lua files
It's happening because do_source is only expected to return FAIL when it
was unable to open file . But `nlua_exec_file` returns fail for parsing
and execution error too . Those errors are emitted through `nlua_error`.
So now return value of nlua_exec_file is ignored like do_cmdline. It now
only returns fail when it was unable to open file that check is done
before calling nlua_exec_file or do_cmdline. Errors in nlua_exec_file
are still directly emitted through nlua_error like before.
Diffstat (limited to 'test/functional/ex_cmds/source_spec.lua')
-rw-r--r-- | test/functional/ex_cmds/source_spec.lua | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/test/functional/ex_cmds/source_spec.lua b/test/functional/ex_cmds/source_spec.lua index a03e1ae9ce..37c97f519a 100644 --- a/test/functional/ex_cmds/source_spec.lua +++ b/test/functional/ex_cmds/source_spec.lua @@ -9,6 +9,8 @@ local feed_command = helpers.feed_command local write_file = helpers.write_file local exec = helpers.exec local eval = helpers.eval +local exec_capture = helpers.exec_capture +local neq = helpers.neq describe(':source', function() before_each(function() @@ -90,4 +92,27 @@ describe(':source', function() eq(12, eval('g:c')) os.remove(test_file) end) + + it("doesn't throw E484 for lua parsing/runtime errors", function() + local test_file = 'test.lua' + + -- Does throw E484 for unreadable files + local ok, result = pcall(exec_capture, ":source "..test_file ..'noexisting') + eq(false, ok) + neq(nil, result:find("E484")) + + -- Doesn't throw for parsing error + write_file (test_file, "vim.g.c = ") + ok, result = pcall(exec_capture, ":source "..test_file) + eq(false, ok) + eq(nil, result:find("E484")) + os.remove(test_file) + + -- Doesn't throw for runtime error + write_file (test_file, "error('Cause error anyway :D')") + ok, result = pcall(exec_capture, ":source "..test_file) + eq(false, ok) + eq(nil, result:find("E484")) + os.remove(test_file) + end) end) |