diff options
Diffstat (limited to 'test/functional/shada')
-rw-r--r-- | test/functional/shada/errors_spec.lua | 21 | ||||
-rw-r--r-- | test/functional/shada/history_spec.lua | 10 | ||||
-rw-r--r-- | test/functional/shada/variables_spec.lua | 35 |
3 files changed, 35 insertions, 31 deletions
diff --git a/test/functional/shada/errors_spec.lua b/test/functional/shada/errors_spec.lua index 66c8c4ad2f..77a41caec7 100644 --- a/test/functional/shada/errors_spec.lua +++ b/test/functional/shada/errors_spec.lua @@ -1,7 +1,7 @@ -- ShaDa errors handling support local helpers = require('test.functional.helpers')(after_each) -local nvim_command, eq, exc_exec, redir_exec = - helpers.command, helpers.eq, helpers.exc_exec, helpers.redir_exec +local nvim_command, eq, exc_exec = + helpers.command, helpers.eq, helpers.exc_exec local shada_helpers = require('test.functional.shada.helpers') local reset, clear, get_shada_rw = @@ -494,23 +494,6 @@ $ 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('\nE5004: Error while dumping variable g:F, itself: 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('\nE5005: Unable to dump variable g:L: container references itself in index 0' - .. '\nE574: Failed to write variable L', - redir_exec('wshada')) - end) - it('errors with too large items', function() wshada({ 1, 206, 70, 90, 31, 179, 86, 133, 169, 103, 101, 110, 101, 114, 97, diff --git a/test/functional/shada/history_spec.lua b/test/functional/shada/history_spec.lua index 78b5c77857..9291f5e100 100644 --- a/test/functional/shada/history_spec.lua +++ b/test/functional/shada/history_spec.lua @@ -2,6 +2,7 @@ local helpers = require('test.functional.helpers')(after_each) local nvim_command, funcs, meths, nvim_feed, eq = helpers.command, helpers.funcs, helpers.meths, helpers.feed, helpers.eq +local eval = helpers.eval local shada_helpers = require('test.functional.shada.helpers') local reset, clear = shada_helpers.reset, shada_helpers.clear @@ -237,4 +238,13 @@ describe('ShaDa support code', function() nvim_command('wshada') end) + it('does not crash when number of history save to zero (#11497)', function() + nvim_command('set shada=\'10') + nvim_feed(':" Test\n') + nvim_command('wshada') + nvim_command('set shada=\'10,:0') + nvim_command('wshada') + eq(2, eval('1+1')) -- check nvim still running + end) + end) diff --git a/test/functional/shada/variables_spec.lua b/test/functional/shada/variables_spec.lua index 74bbceddcc..cc0e7fa537 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')(after_each) -local meths, funcs, nvim_command, eq, exc_exec = - helpers.meths, helpers.funcs, helpers.command, helpers.eq, helpers.exc_exec +local meths, funcs, nvim_command, eq = + helpers.meths, helpers.funcs, helpers.command, helpers.eq local shada_helpers = require('test.functional.shada.helpers') local reset, clear = shada_helpers.reset, shada_helpers.clear @@ -121,28 +121,39 @@ describe('ShaDa support code', function() meths.get_var('NESTEDVAR')) end) - it('errors and writes when a funcref is stored in a variable', + it('ignore when a funcref is stored in a variable', function() nvim_command('let F = function("tr")') meths.set_var('U', '10') nvim_command('set shada+=!') - eq('Vim(wshada):E5004: Error while dumping variable g:F, itself: attempt to dump function reference', - exc_exec('wshada')) - meths.set_option('shada', '') - reset('set shada+=!') + nvim_command('wshada') + reset() + nvim_command('set shada+=!') + nvim_command('rshada') eq('10', meths.get_var('U')) end) - it('errors and writes when a self-referencing list is stored in a variable', + it('ignore when a partial is stored in a variable', + function() + nvim_command('let P = { -> 1 }') + meths.set_var('U', '10') + nvim_command('set shada+=!') + nvim_command('wshada') + reset() + nvim_command('set shada+=!') + nvim_command('rshada') + eq('10', meths.get_var('U')) + end) + + it('ignore 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):E5005: Unable to dump variable g:L: container references itself in index 0', - exc_exec('wshada')) - meths.set_option('shada', '') - reset('set shada+=!') + nvim_command('wshada') + reset() + nvim_command('rshada') eq('10', meths.get_var('U')) end) end) |