diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2015-12-18 11:55:15 -0500 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2015-12-18 11:55:15 -0500 |
commit | e123675bcce886c1da3d917fbd88ab38cda7eba5 (patch) | |
tree | db1304682589c4d569ea16531d9cd529ab192eaa /test/functional/shada/variables_spec.lua | |
parent | f638572164f93409dfd2473f91ec90844a42fc70 (diff) | |
parent | 5c112c0cb97a5c3fc1060aa83982541b316fa5a8 (diff) | |
download | rneovim-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/variables_spec.lua')
-rw-r--r-- | test/functional/shada/variables_spec.lua | 31 |
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) |