shada: Continue dumping when variables failed to dump

Closes #3721
This commit is contained in:
ZyX
2015-11-23 14:24:25 +03:00
parent cc203e4b93
commit ea67bf808b
3 changed files with 102 additions and 50 deletions

View File

@@ -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)