mirror of
https://github.com/neovim/neovim.git
synced 2025-09-06 19:38:20 +00:00
vim-patch:8.2.0522: several errors are not tested for (#19901)
Problem: Several errors are not tested for.
Solution: Add tests. (Yegappan Lakshmanan, closes vim/vim#5892)
ee4e0c1e9a
Omit Test_range() change: reverted in patch 8.2.0615.
Cherry-pick Test_z_no_space_before_xxx() from patch 8.2.0195.
Cherry-pick Test_reverse_sort_uniq() change from patch 8.2.0183.
Make uniq() error behavior consistent with sort().
Cherry-pick Test_set_ttytype() change from patch 8.1.1826.
Cherry-pick quickfix checks from patch 8.1.2373 to test_preview.vim.
Test_viminfo_error() is applicable.
Cherry-pick E1058 from patch 8.2.0149 and port Test_deep_nest() to Lua.
This commit is contained in:
@@ -10,11 +10,13 @@
|
||||
-- test/functional/vimscript/functions_spec.lua
|
||||
|
||||
local helpers = require('test.functional.helpers')(after_each)
|
||||
local Screen = require('test.functional.ui.screen')
|
||||
|
||||
local lfs = require('lfs')
|
||||
local clear = helpers.clear
|
||||
local eq = helpers.eq
|
||||
local exc_exec = helpers.exc_exec
|
||||
local exec = helpers.exec
|
||||
local eval = helpers.eval
|
||||
local command = helpers.command
|
||||
local write_file = helpers.write_file
|
||||
@@ -144,3 +146,76 @@ describe('List support code', function()
|
||||
end
|
||||
end)
|
||||
end)
|
||||
|
||||
-- oldtest: Test_deep_nest()
|
||||
it('Error when if/for/while/try/function is nested too deep',function()
|
||||
clear()
|
||||
local screen = Screen.new(80, 24)
|
||||
screen:attach()
|
||||
meths.set_option('laststatus', 2)
|
||||
exec([[
|
||||
" Deep nesting of if ... endif
|
||||
func Test1()
|
||||
let @a = join(repeat(['if v:true'], 51), "\n")
|
||||
let @a ..= "\n"
|
||||
let @a ..= join(repeat(['endif'], 51), "\n")
|
||||
@a
|
||||
let @a = ''
|
||||
endfunc
|
||||
|
||||
" Deep nesting of for ... endfor
|
||||
func Test2()
|
||||
let @a = join(repeat(['for i in [1]'], 51), "\n")
|
||||
let @a ..= "\n"
|
||||
let @a ..= join(repeat(['endfor'], 51), "\n")
|
||||
@a
|
||||
let @a = ''
|
||||
endfunc
|
||||
|
||||
" Deep nesting of while ... endwhile
|
||||
func Test3()
|
||||
let @a = join(repeat(['while v:true'], 51), "\n")
|
||||
let @a ..= "\n"
|
||||
let @a ..= join(repeat(['endwhile'], 51), "\n")
|
||||
@a
|
||||
let @a = ''
|
||||
endfunc
|
||||
|
||||
" Deep nesting of try ... endtry
|
||||
func Test4()
|
||||
let @a = join(repeat(['try'], 51), "\n")
|
||||
let @a ..= "\necho v:true\n"
|
||||
let @a ..= join(repeat(['endtry'], 51), "\n")
|
||||
@a
|
||||
let @a = ''
|
||||
endfunc
|
||||
|
||||
" Deep nesting of function ... endfunction
|
||||
func Test5()
|
||||
let @a = join(repeat(['function X()'], 51), "\n")
|
||||
let @a ..= "\necho v:true\n"
|
||||
let @a ..= join(repeat(['endfunction'], 51), "\n")
|
||||
@a
|
||||
let @a = ''
|
||||
endfunc
|
||||
]])
|
||||
screen:expect({any = '%[No Name%]'})
|
||||
feed(':call Test1()<CR>')
|
||||
screen:expect({any = 'E579: '})
|
||||
feed('<C-C>')
|
||||
screen:expect({any = '%[No Name%]'})
|
||||
feed(':call Test2()<CR>')
|
||||
screen:expect({any = 'E585: '})
|
||||
feed('<C-C>')
|
||||
screen:expect({any = '%[No Name%]'})
|
||||
feed(':call Test3()<CR>')
|
||||
screen:expect({any = 'E585: '})
|
||||
feed('<C-C>')
|
||||
screen:expect({any = '%[No Name%]'})
|
||||
feed(':call Test4()<CR>')
|
||||
screen:expect({any = 'E601: '})
|
||||
feed('<C-C>')
|
||||
screen:expect({any = '%[No Name%]'})
|
||||
feed(':call Test5()<CR>')
|
||||
screen:expect({any = 'E1058: '})
|
||||
end)
|
||||
|
Reference in New Issue
Block a user