aboutsummaryrefslogtreecommitdiff
path: root/test/functional/shada/errors_spec.lua
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2015-12-18 11:55:15 -0500
committerJustin M. Keyes <justinkz@gmail.com>2015-12-18 11:55:15 -0500
commite123675bcce886c1da3d917fbd88ab38cda7eba5 (patch)
treedb1304682589c4d569ea16531d9cd529ab192eaa /test/functional/shada/errors_spec.lua
parentf638572164f93409dfd2473f91ec90844a42fc70 (diff)
parent5c112c0cb97a5c3fc1060aa83982541b316fa5a8 (diff)
downloadrneovim-e123675bcce886c1da3d917fbd88ab38cda7eba5.tar.gz
rneovim-e123675bcce886c1da3d917fbd88ab38cda7eba5.tar.bz2
rneovim-e123675bcce886c1da3d917fbd88ab38cda7eba5.zip
Merge pull request #3722 from ZyX-I/fix-3721
shada: Continue dumping when variables failed to dump
Diffstat (limited to 'test/functional/shada/errors_spec.lua')
-rw-r--r--test/functional/shada/errors_spec.lua20
1 files changed, 19 insertions, 1 deletions
diff --git a/test/functional/shada/errors_spec.lua b/test/functional/shada/errors_spec.lua
index 62b9e6c84d..f6265bf24b 100644
--- a/test/functional/shada/errors_spec.lua
+++ b/test/functional/shada/errors_spec.lua
@@ -1,6 +1,7 @@
-- ShaDa errors handling support
local helpers = require('test.functional.helpers')
-local nvim_command, eq, exc_exec = helpers.command, helpers.eq, helpers.exc_exec
+local nvim_command, eq, exc_exec, redir_exec =
+ helpers.command, helpers.eq, helpers.exc_exec, helpers.redir_exec
local shada_helpers = require('test.functional.shada.helpers')
local reset, clear, get_shada_rw =
@@ -492,4 +493,21 @@ $
eq('Vim(wshada):E576: Error while reading ShaDa file: last entry specified that it occupies 47 bytes, but file ended earlier', exc_exec('wshada ' .. shada_fname))
eq(0, exc_exec('wshada! ' .. shada_fname))
end)
+
+ it('errors when a funcref is stored in a variable', function()
+ nvim_command('let F = function("tr")')
+ nvim_command('set shada+=!')
+ eq('\nE475: Invalid argument: attempt to dump function reference'
+ .. '\nE574: Failed to write variable F',
+ redir_exec('wshada'))
+ end)
+
+ it('errors when a self-referencing list is stored in a variable', function()
+ nvim_command('let L = []')
+ nvim_command('call add(L, L)')
+ nvim_command('set shada+=!')
+ eq('\nE475: Invalid argument: container references itself'
+ .. '\nE574: Failed to write variable L',
+ redir_exec('wshada'))
+ end)
end)