aboutsummaryrefslogtreecommitdiff
path: root/test/functional/shada/variables_spec.lua
diff options
context:
space:
mode:
authorZyX <kp-pav@yandex.ru>2015-11-23 14:24:25 +0300
committerZyX <kp-pav@yandex.ru>2015-12-18 19:29:49 +0300
commitea67bf808bfaee5d4ad68fa40235929db28dbd57 (patch)
treec4ffbb585ac32521d435b87a7b3aaa9a46582792 /test/functional/shada/variables_spec.lua
parentcc203e4b93d920cb749f80336504d7e6df0081a2 (diff)
downloadrneovim-ea67bf808bfaee5d4ad68fa40235929db28dbd57.tar.gz
rneovim-ea67bf808bfaee5d4ad68fa40235929db28dbd57.tar.bz2
rneovim-ea67bf808bfaee5d4ad68fa40235929db28dbd57.zip
shada: Continue dumping when variables failed to dump
Closes #3721
Diffstat (limited to 'test/functional/shada/variables_spec.lua')
-rw-r--r--test/functional/shada/variables_spec.lua31
1 files changed, 29 insertions, 2 deletions
diff --git a/test/functional/shada/variables_spec.lua b/test/functional/shada/variables_spec.lua
index 6225971e5f..22054db353 100644
--- a/test/functional/shada/variables_spec.lua
+++ b/test/functional/shada/variables_spec.lua
@@ -1,7 +1,7 @@
-- ShaDa variables saving/reading support
local helpers = require('test.functional.helpers')
-local meths, funcs, nvim_command, eq =
- helpers.meths, helpers.funcs, helpers.command, helpers.eq
+local meths, funcs, nvim_command, eq, exc_exec =
+ helpers.meths, helpers.funcs, helpers.command, helpers.eq, helpers.exc_exec
local shada_helpers = require('test.functional.shada.helpers')
local reset, set_additional_cmd, clear =
@@ -136,4 +136,31 @@ describe('ShaDa support code', function()
eq({['\171']={{'\171'}, {['\171']='\171'}, {a='Test'}}},
meths.get_var('NESTEDVAR'))
end)
+
+ it('errors and writes when a funcref is stored in a variable',
+ function()
+ nvim_command('let F = function("tr")')
+ meths.set_var('U', '10')
+ nvim_command('set shada+=!')
+ set_additional_cmd('set shada+=!')
+ eq('Vim(wshada):E475: Invalid argument: attempt to dump function reference',
+ exc_exec('wshada'))
+ meths.set_option('shada', '')
+ reset()
+ eq('10', meths.get_var('U'))
+ end)
+
+ it('errors and writes when a self-referencing list is stored in a variable',
+ function()
+ meths.set_var('L', {})
+ nvim_command('call add(L, L)')
+ meths.set_var('U', '10')
+ nvim_command('set shada+=!')
+ eq('Vim(wshada):E475: Invalid argument: container references itself',
+ exc_exec('wshada'))
+ meths.set_option('shada', '')
+ set_additional_cmd('set shada+=!')
+ reset()
+ eq('10', meths.get_var('U'))
+ end)
end)