mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
Merge pull request #20946 from zeertzjq/vim-8.2.1106
vim-patch:8.2.{0883,1106,1366,1383,1417}: Vim script tests
This commit is contained in:
commit
19729e2136
@ -807,6 +807,7 @@ int do_cmdline(char *cmdline, LineGetter fgetline, void *cookie, int flags)
|
||||
next = messages->next;
|
||||
emsg(messages->msg);
|
||||
xfree(messages->msg);
|
||||
xfree(messages->sfile);
|
||||
xfree(messages);
|
||||
messages = next;
|
||||
} while (messages != NULL);
|
||||
|
@ -364,4 +364,19 @@ func GetMessages()
|
||||
return msg_list
|
||||
endfunc
|
||||
|
||||
" Run the list of commands in 'cmds' and look for 'errstr' in exception.
|
||||
" Note that assert_fails() cannot be used in some places and this function
|
||||
" can be used.
|
||||
func AssertException(cmds, errstr)
|
||||
let save_exception = ''
|
||||
try
|
||||
for cmd in a:cmds
|
||||
exe cmd
|
||||
endfor
|
||||
catch
|
||||
let save_exception = v:exception
|
||||
endtry
|
||||
call assert_match(a:errstr, save_exception)
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
@ -1,48 +1,4 @@
|
||||
Results of test49.vim:
|
||||
*** Test 18: OK (67224583)
|
||||
*** Test 19: OK (69275973)
|
||||
*** Test 20: OK (1874575085)
|
||||
*** Test 21: OK (147932225)
|
||||
*** Test 22: OK (4161)
|
||||
*** Test 23: OK (49)
|
||||
*** Test 24: OK (41)
|
||||
*** Test 27: OK (1996459)
|
||||
*** Test 28: OK (1996459)
|
||||
*** Test 29: OK (170428555)
|
||||
*** Test 30: OK (190905173)
|
||||
*** Test 31: OK (190905173)
|
||||
*** Test 34: OK (2146584868)
|
||||
*** Test 35: OK (2146584868)
|
||||
*** Test 36: OK (1071644672)
|
||||
*** Test 37: OK (1071644672)
|
||||
*** Test 38: OK (357908480)
|
||||
*** Test 39: OK (357908480)
|
||||
*** Test 40: OK (357908480)
|
||||
*** Test 49: OK (179000669)
|
||||
*** Test 50: OK (363550045)
|
||||
*** Test 52: OK (1247112011)
|
||||
*** Test 53: OK (131071)
|
||||
*** Test 54: OK (2047)
|
||||
*** Test 55: OK (1023)
|
||||
*** Test 56: OK (511)
|
||||
*** Test 57: OK (2147450880)
|
||||
*** Test 58: OK (624945)
|
||||
*** Test 59: OK (2038431743)
|
||||
*** Test 60: OK (311511339)
|
||||
*** Test 61: OK (374889517)
|
||||
*** Test 62: OK (286331153)
|
||||
*** Test 63: OK (236978127)
|
||||
*** Test 64: OK (1499645335)
|
||||
*** Test 65: OK (70187)
|
||||
*** Test 66: OK (5464)
|
||||
*** Test 67: OK (212514423)
|
||||
*** Test 68: OK (212514423)
|
||||
*** Test 76: OK (1610087935)
|
||||
*** Test 77: OK (1388671)
|
||||
*** Test 78: OK (134217728)
|
||||
*** Test 79: OK (70288929)
|
||||
*** Test 80: OK (17895765)
|
||||
*** Test 81: OK (387)
|
||||
*** Test 82: OK (8454401)
|
||||
*** Test 83: OK (2835)
|
||||
*** Test 84: OK (934782101)
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
90
test/functional/legacy/vimscript_spec.lua
Normal file
90
test/functional/legacy/vimscript_spec.lua
Normal file
@ -0,0 +1,90 @@
|
||||
local helpers = require('test.functional.helpers')(after_each)
|
||||
local Screen = require('test.functional.ui.screen')
|
||||
local clear = helpers.clear
|
||||
local exec = helpers.exec
|
||||
local feed = helpers.feed
|
||||
local meths = helpers.meths
|
||||
|
||||
before_each(clear)
|
||||
|
||||
describe('Vim script', function()
|
||||
-- oldtest: Test_deep_nest()
|
||||
it('Error when if/for/while/try/function is nested too deep',function()
|
||||
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)
|
||||
|
||||
-- oldtest: Test_typed_script_var()
|
||||
it('using s: with a typed command', function()
|
||||
local screen = Screen.new(80, 24)
|
||||
screen:attach()
|
||||
feed(":echo get(s:, 'foo', 'x')\n")
|
||||
screen:expect({any = 'E116: '})
|
||||
end)
|
||||
end)
|
@ -16,7 +16,6 @@ local lfs = require('lfs')
|
||||
local clear = helpers.clear
|
||||
local eq = helpers.eq
|
||||
local exc_exec = helpers.exc_exec
|
||||
local exec = helpers.exec
|
||||
local exec_lua = helpers.exec_lua
|
||||
local exec_capture = helpers.exec_capture
|
||||
local eval = helpers.eval
|
||||
@ -152,79 +151,6 @@ describe('List support code', function()
|
||||
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)
|
||||
|
||||
describe("uncaught exception", function()
|
||||
before_each(clear)
|
||||
after_each(function()
|
||||
|
Loading…
Reference in New Issue
Block a user