mirror of
https://github.com/neovim/neovim.git
synced 2025-09-13 23:08:16 +00:00
functests: Update tests
This commit is contained in:
@@ -541,27 +541,27 @@ describe('msgpackdump() function', function()
|
|||||||
|
|
||||||
it('fails to dump a function reference', function()
|
it('fails to dump a function reference', function()
|
||||||
execute('let Todump = function("tr")')
|
execute('let Todump = function("tr")')
|
||||||
eq('Vim(call):E475: Invalid argument: attempt to dump function reference',
|
eq('Vim(call):E951: Error while dumping msgpackdump() argument, index 0, itself: attempt to dump function reference',
|
||||||
exc_exec('call msgpackdump([Todump])'))
|
exc_exec('call msgpackdump([Todump])'))
|
||||||
end)
|
end)
|
||||||
|
|
||||||
it('fails to dump a function reference in a list', function()
|
it('fails to dump a function reference in a list', function()
|
||||||
execute('let todump = [function("tr")]')
|
execute('let todump = [function("tr")]')
|
||||||
eq('Vim(call):E475: Invalid argument: attempt to dump function reference',
|
eq('Vim(call):E951: Error while dumping msgpackdump() argument, index 0, index 0: attempt to dump function reference',
|
||||||
exc_exec('call msgpackdump([todump])'))
|
exc_exec('call msgpackdump([todump])'))
|
||||||
end)
|
end)
|
||||||
|
|
||||||
it('fails to dump a recursive list', function()
|
it('fails to dump a recursive list', function()
|
||||||
execute('let todump = [[[]]]')
|
execute('let todump = [[[]]]')
|
||||||
execute('call add(todump[0][0], todump)')
|
execute('call add(todump[0][0], todump)')
|
||||||
eq('Vim(call):E475: Invalid argument: container references itself',
|
eq('Vim(call):E952: Unable to dump msgpackdump() argument, index 0: container references itself in index 0, index 0, index 0',
|
||||||
exc_exec('call msgpackdump([todump])'))
|
exc_exec('call msgpackdump([todump])'))
|
||||||
end)
|
end)
|
||||||
|
|
||||||
it('fails to dump a recursive dict', function()
|
it('fails to dump a recursive dict', function()
|
||||||
execute('let todump = {"d": {"d": {}}}')
|
execute('let todump = {"d": {"d": {}}}')
|
||||||
execute('call extend(todump.d.d, {"d": todump})')
|
execute('call extend(todump.d.d, {"d": todump})')
|
||||||
eq('Vim(call):E475: Invalid argument: container references itself',
|
eq('Vim(call):E952: Unable to dump msgpackdump() argument, index 0: container references itself in key \'d\', key \'d\', key \'d\'',
|
||||||
exc_exec('call msgpackdump([todump])'))
|
exc_exec('call msgpackdump([todump])'))
|
||||||
end)
|
end)
|
||||||
|
|
||||||
@@ -580,21 +580,35 @@ describe('msgpackdump() function', function()
|
|||||||
it('fails to dump a recursive list in a special dict', function()
|
it('fails to dump a recursive list in a special dict', function()
|
||||||
execute('let todump = {"_TYPE": v:msgpack_types.array, "_VAL": []}')
|
execute('let todump = {"_TYPE": v:msgpack_types.array, "_VAL": []}')
|
||||||
execute('call add(todump._VAL, todump)')
|
execute('call add(todump._VAL, todump)')
|
||||||
eq('Vim(call):E475: Invalid argument: container references itself',
|
eq('Vim(call):E952: Unable to dump msgpackdump() argument, index 0: container references itself in index 0',
|
||||||
exc_exec('call msgpackdump([todump])'))
|
exc_exec('call msgpackdump([todump])'))
|
||||||
end)
|
end)
|
||||||
|
|
||||||
it('fails to dump a recursive (key) map in a special dict', function()
|
it('fails to dump a recursive (key) map in a special dict', function()
|
||||||
execute('let todump = {"_TYPE": v:msgpack_types.array, "_VAL": []}')
|
execute('let todump = {"_TYPE": v:msgpack_types.map, "_VAL": []}')
|
||||||
execute('call add(todump._VAL, [todump, 0])')
|
execute('call add(todump._VAL, [todump, 0])')
|
||||||
eq('Vim(call):E475: Invalid argument: container references itself',
|
eq('Vim(call):E952: Unable to dump msgpackdump() argument, index 0: container references itself in index 1',
|
||||||
exc_exec('call msgpackdump([todump])'))
|
exc_exec('call msgpackdump([todump])'))
|
||||||
end)
|
end)
|
||||||
|
|
||||||
it('fails to dump a recursive (val) map in a special dict', function()
|
it('fails to dump a recursive (val) map in a special dict', function()
|
||||||
execute('let todump = {"_TYPE": v:msgpack_types.array, "_VAL": []}')
|
execute('let todump = {"_TYPE": v:msgpack_types.map, "_VAL": []}')
|
||||||
execute('call add(todump._VAL, [0, todump])')
|
execute('call add(todump._VAL, [0, todump])')
|
||||||
eq('Vim(call):E475: Invalid argument: container references itself',
|
eq('Vim(call):E952: Unable to dump msgpackdump() argument, index 0: container references itself in key 0 at index 0 from special map',
|
||||||
|
exc_exec('call msgpackdump([todump])'))
|
||||||
|
end)
|
||||||
|
|
||||||
|
it('fails to dump a recursive (key) map in a special dict, _VAL reference', function()
|
||||||
|
execute('let todump = {"_TYPE": v:msgpack_types.map, "_VAL": [[[], []]]}')
|
||||||
|
execute('call add(todump._VAL[0][0], todump._VAL)')
|
||||||
|
eq('Vim(call):E952: Unable to dump msgpackdump() argument, index 0: container references itself in key [[[{E724@0}, []]]] at index 0 from special map, index 0',
|
||||||
|
exc_exec('call msgpackdump([todump])'))
|
||||||
|
end)
|
||||||
|
|
||||||
|
it('fails to dump a recursive (val) map in a special dict, _VAL reference', function()
|
||||||
|
execute('let todump = {"_TYPE": v:msgpack_types.map, "_VAL": [[[], []]]}')
|
||||||
|
execute('call add(todump._VAL[0][1], todump._VAL)')
|
||||||
|
eq('Vim(call):E952: Unable to dump msgpackdump() argument, index 0: container references itself in key [] at index 0 from special map, index 0',
|
||||||
exc_exec('call msgpackdump([todump])'))
|
exc_exec('call msgpackdump([todump])'))
|
||||||
end)
|
end)
|
||||||
|
|
||||||
@@ -602,7 +616,7 @@ describe('msgpackdump() function', function()
|
|||||||
function()
|
function()
|
||||||
execute('let todump = {"_TYPE": v:msgpack_types.array, "_VAL": []}')
|
execute('let todump = {"_TYPE": v:msgpack_types.array, "_VAL": []}')
|
||||||
execute('call add(todump._VAL, [0, todump._VAL])')
|
execute('call add(todump._VAL, [0, todump._VAL])')
|
||||||
eq('Vim(call):E475: Invalid argument: container references itself',
|
eq('Vim(call):E952: Unable to dump msgpackdump() argument, index 0: container references itself in index 0, index 1',
|
||||||
exc_exec('call msgpackdump([todump])'))
|
exc_exec('call msgpackdump([todump])'))
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
@@ -697,3 +697,27 @@ describe('In autoload/msgpack.vim', function()
|
|||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
describe('msgpackdump() function', function()
|
||||||
|
before_each(reset)
|
||||||
|
|
||||||
|
it('uses msgpack#string for dumping fref error messages for special map keys', function()
|
||||||
|
nvim_command('let todump = {"_TYPE": v:msgpack_types.map, "_VAL": [[{"_TYPE": v:msgpack_types.string, "_VAL": ["abc"]}, [function("tr")]]]}')
|
||||||
|
eq('Vim(call):E951: Error while dumping msgpackdump() argument, index 0, key ="abc" at index 0 from special map, index 0: attempt to dump function reference',
|
||||||
|
exc_exec('call msgpackdump([todump])'))
|
||||||
|
end)
|
||||||
|
|
||||||
|
it('falls back to using string() in case of error (fref)', function()
|
||||||
|
nvim_command('let todump = {"_TYPE": v:msgpack_types.map, "_VAL": [[[function("tr")], []]]}')
|
||||||
|
nvim_command('call add(todump._VAL[0][0], todump._VAL[0][0])')
|
||||||
|
eq('Vim(call):E951: Error while dumping msgpackdump() argument, index 0, key [function(\'tr\'), {E724@0}] at index 0 from special map, index 0: attempt to dump function reference',
|
||||||
|
exc_exec('call msgpackdump([todump])'))
|
||||||
|
end)
|
||||||
|
|
||||||
|
it('falls back to using string() in case of error (recurse)', function()
|
||||||
|
nvim_command('let todump = {"_TYPE": v:msgpack_types.map, "_VAL": [[[], []]]}')
|
||||||
|
nvim_command('call add(todump._VAL[0][0], todump._VAL[0][0])')
|
||||||
|
eq('Vim(call):E952: Unable to dump msgpackdump() argument, index 0: container references itself in key [{E724@0}] at index 0 from special map, index 0',
|
||||||
|
exc_exec('call msgpackdump([todump])'))
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
@@ -497,7 +497,7 @@ $
|
|||||||
it('errors when a funcref is stored in a variable', function()
|
it('errors when a funcref is stored in a variable', function()
|
||||||
nvim_command('let F = function("tr")')
|
nvim_command('let F = function("tr")')
|
||||||
nvim_command('set shada+=!')
|
nvim_command('set shada+=!')
|
||||||
eq('\nE475: Invalid argument: attempt to dump function reference'
|
eq('\nE951: Error while dumping variable g:F, itself: attempt to dump function reference'
|
||||||
.. '\nE574: Failed to write variable F',
|
.. '\nE574: Failed to write variable F',
|
||||||
redir_exec('wshada'))
|
redir_exec('wshada'))
|
||||||
end)
|
end)
|
||||||
@@ -506,7 +506,7 @@ $
|
|||||||
nvim_command('let L = []')
|
nvim_command('let L = []')
|
||||||
nvim_command('call add(L, L)')
|
nvim_command('call add(L, L)')
|
||||||
nvim_command('set shada+=!')
|
nvim_command('set shada+=!')
|
||||||
eq('\nE475: Invalid argument: container references itself'
|
eq('\nE952: Unable to dump variable g:L: container references itself in index 0'
|
||||||
.. '\nE574: Failed to write variable L',
|
.. '\nE574: Failed to write variable L',
|
||||||
redir_exec('wshada'))
|
redir_exec('wshada'))
|
||||||
end)
|
end)
|
||||||
|
@@ -143,7 +143,7 @@ describe('ShaDa support code', function()
|
|||||||
meths.set_var('U', '10')
|
meths.set_var('U', '10')
|
||||||
nvim_command('set shada+=!')
|
nvim_command('set shada+=!')
|
||||||
set_additional_cmd('set shada+=!')
|
set_additional_cmd('set shada+=!')
|
||||||
eq('Vim(wshada):E475: Invalid argument: attempt to dump function reference',
|
eq('Vim(wshada):E951: Error while dumping variable g:F, itself: attempt to dump function reference',
|
||||||
exc_exec('wshada'))
|
exc_exec('wshada'))
|
||||||
meths.set_option('shada', '')
|
meths.set_option('shada', '')
|
||||||
reset()
|
reset()
|
||||||
@@ -156,7 +156,7 @@ describe('ShaDa support code', function()
|
|||||||
nvim_command('call add(L, L)')
|
nvim_command('call add(L, L)')
|
||||||
meths.set_var('U', '10')
|
meths.set_var('U', '10')
|
||||||
nvim_command('set shada+=!')
|
nvim_command('set shada+=!')
|
||||||
eq('Vim(wshada):E475: Invalid argument: container references itself',
|
eq('Vim(wshada):E952: Unable to dump variable g:L: container references itself in index 0',
|
||||||
exc_exec('wshada'))
|
exc_exec('wshada'))
|
||||||
meths.set_option('shada', '')
|
meths.set_option('shada', '')
|
||||||
set_additional_cmd('set shada+=!')
|
set_additional_cmd('set shada+=!')
|
||||||
|
Reference in New Issue
Block a user