mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
tests: Debug converted eval test.
This commit is contained in:
parent
3571fdac6f
commit
8cfef01193
@ -1,15 +1,36 @@
|
|||||||
-- Test for various eval features.
|
-- Test for various eval features.
|
||||||
-- Note: system clipboard support is not tested. I do not think anybody will thank
|
-- Note: system clipboard support is not tested. I do not think anybody will
|
||||||
-- me for messing with clipboard.
|
-- thank me for messing with clipboard.
|
||||||
|
|
||||||
local helpers = require('test.functional.helpers')
|
local helpers = require('test.functional.helpers')
|
||||||
local feed, insert, source = helpers.feed, helpers.insert, helpers.source
|
local feed, insert, source = helpers.feed, helpers.insert, helpers.source
|
||||||
local clear, execute, expect = helpers.clear, helpers.execute, helpers.expect
|
local clear, execute, expect = helpers.clear, helpers.execute, helpers.expect
|
||||||
|
local eq, eval, wait, write_file = helpers.eq, helpers.eval, helpers.wait, helpers.write_file
|
||||||
|
|
||||||
describe('eval', function()
|
describe('various eval features', function()
|
||||||
setup(clear)
|
setup(function()
|
||||||
|
clear()
|
||||||
|
write_file('test_eval_func.vim', [[
|
||||||
|
" Vim script used in test_eval.in. Needed for script-local function.
|
||||||
|
|
||||||
|
func! s:Testje()
|
||||||
|
return "foo"
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
let Bar = function('s:Testje')
|
||||||
|
|
||||||
|
$put ='s:Testje exists: ' . exists('s:Testje')
|
||||||
|
$put ='func s:Testje exists: ' . exists('*s:Testje')
|
||||||
|
$put ='Bar exists: ' . exists('Bar')
|
||||||
|
$put ='func Bar exists: ' . exists('*Bar')
|
||||||
|
]])
|
||||||
|
end)
|
||||||
|
teardown(function()
|
||||||
|
os.remove('test.out')
|
||||||
|
os.remove('test_eval_func.vim')
|
||||||
|
end)
|
||||||
|
|
||||||
it('is working', function()
|
it('are working', function()
|
||||||
insert([[
|
insert([[
|
||||||
012345678
|
012345678
|
||||||
012345678
|
012345678
|
||||||
@ -20,6 +41,7 @@ describe('eval', function()
|
|||||||
set encoding=latin1
|
set encoding=latin1
|
||||||
set noswapfile
|
set noswapfile
|
||||||
lang C
|
lang C
|
||||||
|
|
||||||
fun RegInfo(reg)
|
fun RegInfo(reg)
|
||||||
return [
|
return [
|
||||||
\ a:reg,
|
\ a:reg,
|
||||||
@ -30,11 +52,15 @@ describe('eval', function()
|
|||||||
\ string(getreg(a:reg, 1, 1))
|
\ string(getreg(a:reg, 1, 1))
|
||||||
\ ]
|
\ ]
|
||||||
endfun
|
endfun
|
||||||
|
|
||||||
fun AppendRegContents(reg)
|
fun AppendRegContents(reg)
|
||||||
|
let x = RegInfo(a:reg)
|
||||||
call append('$', printf('%s: type %s; value: %s (%s), expr: %s (%s)',
|
call append('$', printf('%s: type %s; value: %s (%s), expr: %s (%s)',
|
||||||
\ RegInfo(a:reg)))
|
\ x[0], x[1], x[2], x[3], x[4], x[5]))
|
||||||
endfun
|
endfun
|
||||||
|
|
||||||
command -nargs=? AR :call AppendRegContents(<q-args>)
|
command -nargs=? AR :call AppendRegContents(<q-args>)
|
||||||
|
|
||||||
fun SetReg(...)
|
fun SetReg(...)
|
||||||
call call('setreg', a:000)
|
call call('setreg', a:000)
|
||||||
call append('$', printf('{{{2 setreg(%s)', string(a:000)[1:-2]))
|
call append('$', printf('{{{2 setreg(%s)', string(a:000)[1:-2]))
|
||||||
@ -43,13 +69,14 @@ describe('eval', function()
|
|||||||
execute "silent normal! Go==\n==\e\"".a:1."P"
|
execute "silent normal! Go==\n==\e\"".a:1."P"
|
||||||
endif
|
endif
|
||||||
endfun
|
endfun
|
||||||
|
|
||||||
fun ErrExe(str)
|
fun ErrExe(str)
|
||||||
call append('$', 'Executing '.a:str)
|
call append('$', 'Executing '.a:str)
|
||||||
try
|
try
|
||||||
execute a:str
|
execute a:str
|
||||||
catch
|
catch
|
||||||
$put =v:exception
|
$put =v:exception
|
||||||
endtry
|
endtry
|
||||||
endfun
|
endfun
|
||||||
]])
|
]])
|
||||||
--execute('fun Test()')
|
--execute('fun Test()')
|
||||||
@ -65,13 +92,27 @@ describe('eval', function()
|
|||||||
execute('AR "')
|
execute('AR "')
|
||||||
execute([[let @" = "abc\n"]])
|
execute([[let @" = "abc\n"]])
|
||||||
eq({'"', 'V', 'abc\n', "['abc']", 'abc\n', "['abc']"}, eval([[RegInfo('"')]]))
|
eq({'"', 'V', 'abc\n', "['abc']", 'abc\n', "['abc']"}, eval([[RegInfo('"')]]))
|
||||||
execute('AR "')
|
source([[call RegInfo('"')]])
|
||||||
|
--source([[call AppendRegContents('"')]])
|
||||||
|
source('AR "')
|
||||||
execute([[let @" = "abc\<C-m>"]])
|
execute([[let @" = "abc\<C-m>"]])
|
||||||
execute('AR "')
|
execute('AR "')
|
||||||
-- eq({'"', 'V', 'abc\x0d\n', "['abc']", 'abc\x0d\n', "['abc']"}, eval([[RegInfo('"')]])) -- TODO
|
-- eq({'"', 'V', 'abc\n', "['abc']", 'abc\n', "['abc']"},
|
||||||
|
-- eval([[RegInfo('"')]])) -- TODO
|
||||||
execute([[let @= = '"abc"']])
|
execute([[let @= = '"abc"']])
|
||||||
eq({'=', 'v', 'abc', "['abc']", '"abc"', [=[['"abc"']]=]}, eval([[RegInfo('=')]]))
|
eq({'=', 'v', 'abc', "['abc']", '"abc"', [=[['"abc"']]=]}, eval([[RegInfo('=')]]))
|
||||||
execute('AR =')
|
execute('AR =')
|
||||||
|
expect([[
|
||||||
|
012345678
|
||||||
|
012345678
|
||||||
|
|
||||||
|
start:
|
||||||
|
{{{1 let tests
|
||||||
|
": type v; value: abc (['abc']), expr: abc (['abc'])
|
||||||
|
": type V; value: abc]].."\x00 (['abc']), expr: abc\x00"..[[ (['abc'])
|
||||||
|
": type V; value: abc]].."\r\x00 (['abc\r']), expr: abc\r\x00 (['abc\r"..[['])
|
||||||
|
=: type v; value: abc (['abc']), expr: "abc" (['"abc"'])]])
|
||||||
|
|
||||||
execute([[$put ='{{{1 Basic setreg tests']])
|
execute([[$put ='{{{1 Basic setreg tests']])
|
||||||
execute([[call SetReg('a', 'abcA', 'c')]])
|
execute([[call SetReg('a', 'abcA', 'c')]])
|
||||||
execute([[call SetReg('b', 'abcB', 'v')]])
|
execute([[call SetReg('b', 'abcB', 'v')]])
|
||||||
@ -82,6 +123,7 @@ describe('eval', function()
|
|||||||
execute([[call SetReg('g', 'abcG', 'b10')]])
|
execute([[call SetReg('g', 'abcG', 'b10')]])
|
||||||
execute([[call SetReg('h', 'abcH', "\<C-v>10")]])
|
execute([[call SetReg('h', 'abcH', "\<C-v>10")]])
|
||||||
execute([[call SetReg('I', 'abcI')]])
|
execute([[call SetReg('I', 'abcI')]])
|
||||||
|
|
||||||
execute([[$put ='{{{1 Appending single lines with setreg()']])
|
execute([[$put ='{{{1 Appending single lines with setreg()']])
|
||||||
execute([[call SetReg('A', 'abcAc', 'c')]])
|
execute([[call SetReg('A', 'abcAc', 'c')]])
|
||||||
execute([[call SetReg('A', 'abcAl', 'l')]])
|
execute([[call SetReg('A', 'abcAl', 'l')]])
|
||||||
@ -96,6 +138,7 @@ describe('eval', function()
|
|||||||
execute([[call SetReg('E', 'abcEb', 'b')]])
|
execute([[call SetReg('E', 'abcEb', 'b')]])
|
||||||
execute([[call SetReg('E', 'abcEl', 'l')]])
|
execute([[call SetReg('E', 'abcEl', 'l')]])
|
||||||
execute([[call SetReg('F', 'abcFc', 'c')]])
|
execute([[call SetReg('F', 'abcFc', 'c')]])
|
||||||
|
|
||||||
execute([[$put ='{{{1 Appending NL with setreg()']])
|
execute([[$put ='{{{1 Appending NL with setreg()']])
|
||||||
execute([[call setreg('a', 'abcA2', 'c')]])
|
execute([[call setreg('a', 'abcA2', 'c')]])
|
||||||
execute([[call setreg('b', 'abcB2', 'v')]])
|
execute([[call setreg('b', 'abcB2', 'v')]])
|
||||||
@ -112,6 +155,7 @@ describe('eval', function()
|
|||||||
execute([[call SetReg('D', "\n", 'l')]])
|
execute([[call SetReg('D', "\n", 'l')]])
|
||||||
execute([[call SetReg('E', "\n")]])
|
execute([[call SetReg('E', "\n")]])
|
||||||
execute([[call SetReg('F', "\n", 'b')]])
|
execute([[call SetReg('F', "\n", 'b')]])
|
||||||
|
|
||||||
execute([[$put ='{{{1 Setting lists with setreg()']])
|
execute([[$put ='{{{1 Setting lists with setreg()']])
|
||||||
execute([=[call SetReg('a', ['abcA3'], 'c')]=])
|
execute([=[call SetReg('a', ['abcA3'], 'c')]=])
|
||||||
execute([=[call SetReg('b', ['abcB3'], 'l')]=])
|
execute([=[call SetReg('b', ['abcB3'], 'l')]=])
|
||||||
@ -119,6 +163,7 @@ describe('eval', function()
|
|||||||
execute([=[call SetReg('d', ['abcD3'])]=])
|
execute([=[call SetReg('d', ['abcD3'])]=])
|
||||||
execute([=[call SetReg('e', [1, 2, 'abc', 3])]=])
|
execute([=[call SetReg('e', [1, 2, 'abc', 3])]=])
|
||||||
execute([=[call SetReg('f', [1, 2, 3])]=])
|
execute([=[call SetReg('f', [1, 2, 3])]=])
|
||||||
|
|
||||||
execute([[$put ='{{{1 Appending lists with setreg()']])
|
execute([[$put ='{{{1 Appending lists with setreg()']])
|
||||||
execute([=[call SetReg('A', ['abcA3c'], 'c')]=])
|
execute([=[call SetReg('A', ['abcA3c'], 'c')]=])
|
||||||
execute([=[call SetReg('b', ['abcB3l'], 'la')]=])
|
execute([=[call SetReg('b', ['abcB3l'], 'la')]=])
|
||||||
@ -128,22 +173,26 @@ describe('eval', function()
|
|||||||
execute([=[call SetReg('B', ['abcB3c'], 'c')]=])
|
execute([=[call SetReg('B', ['abcB3c'], 'c')]=])
|
||||||
execute([=[call SetReg('C', ['abcC3l'], 'l')]=])
|
execute([=[call SetReg('C', ['abcC3l'], 'l')]=])
|
||||||
execute([=[call SetReg('D', ['abcD3b'], 'b')]=])
|
execute([=[call SetReg('D', ['abcD3b'], 'b')]=])
|
||||||
|
|
||||||
execute([[$put ='{{{1 Appending lists with NL with setreg()']])
|
execute([[$put ='{{{1 Appending lists with NL with setreg()']])
|
||||||
execute([=[call SetReg('A', ["\n", 'abcA3l2'], 'l')]=])
|
execute([=[call SetReg('A', ["\n", 'abcA3l2'], 'l')]=])
|
||||||
execute([=[call SetReg('B', ["\n", 'abcB3c2'], 'c')]=])
|
execute([=[call SetReg('B', ["\n", 'abcB3c2'], 'c')]=])
|
||||||
execute([=[call SetReg('C', ["\n", 'abcC3b2'], 'b')]=])
|
execute([=[call SetReg('C', ["\n", 'abcC3b2'], 'b')]=])
|
||||||
execute([=[call SetReg('D', ["\n", 'abcD3b50'],'b50')]=])
|
execute([=[call SetReg('D', ["\n", 'abcD3b50'],'b50')]=])
|
||||||
|
|
||||||
execute([[$put ='{{{1 Setting lists with NLs with setreg()']])
|
execute([[$put ='{{{1 Setting lists with NLs with setreg()']])
|
||||||
execute([=[call SetReg('a', ['abcA4-0', "\n", "abcA4-2\n", "\nabcA4-3", "abcA4-4\nabcA4-4-2"])]=])
|
execute([=[call SetReg('a', ['abcA4-0', "\n", "abcA4-2\n", "\nabcA4-3", "abcA4-4\nabcA4-4-2"])]=])
|
||||||
execute([=[call SetReg('b', ['abcB4c-0', "\n", "abcB4c-2\n", "\nabcB4c-3", "abcB4c-4\nabcB4c-4-2"], 'c')]=])
|
execute([=[call SetReg('b', ['abcB4c-0', "\n", "abcB4c-2\n", "\nabcB4c-3", "abcB4c-4\nabcB4c-4-2"], 'c')]=])
|
||||||
execute([=[call SetReg('c', ['abcC4l-0', "\n", "abcC4l-2\n", "\nabcC4l-3", "abcC4l-4\nabcC4l-4-2"], 'l')]=])
|
execute([=[call SetReg('c', ['abcC4l-0', "\n", "abcC4l-2\n", "\nabcC4l-3", "abcC4l-4\nabcC4l-4-2"], 'l')]=])
|
||||||
execute([=[call SetReg('d', ['abcD4b-0', "\n", "abcD4b-2\n", "\nabcD4b-3", "abcD4b-4\nabcD4b-4-2"], 'b')]=])
|
execute([=[call SetReg('d', ['abcD4b-0', "\n", "abcD4b-2\n", "\nabcD4b-3", "abcD4b-4\nabcD4b-4-2"], 'b')]=])
|
||||||
execute([=[call SetReg('e', ['abcE4b10-0', "\n", "abcE4b10-2\n", "\nabcE4b10-3", "abcE4b10-4\nabcE4b10-4-2"], 'b10')]=])
|
execute([=[call SetReg('e', ['abcE4b10-0', "\n", "abcE4b10-2\n", "\nabcE4b10-3", "abcE4b10-4\nabcE4b10-4-2"], 'b10')]=])
|
||||||
|
|
||||||
execute([[$put ='{{{1 Search and expressions']])
|
execute([[$put ='{{{1 Search and expressions']])
|
||||||
execute([=[call SetReg('/', ['abc/'])]=])
|
execute([=[call SetReg('/', ['abc/'])]=])
|
||||||
execute([=[call SetReg('/', ["abc/\n"])]=])
|
execute([=[call SetReg('/', ["abc/\n"])]=])
|
||||||
execute([=[call SetReg('=', ['"abc/"'])]=])
|
execute([=[call SetReg('=', ['"abc/"'])]=])
|
||||||
execute([=[call SetReg('=', ["\"abc/\n\""])]=])
|
execute([=[call SetReg('=', ["\"abc/\n\""])]=])
|
||||||
|
|
||||||
execute([[$put ='{{{1 Errors']])
|
execute([[$put ='{{{1 Errors']])
|
||||||
execute([[call ErrExe('call setreg()')]])
|
execute([[call ErrExe('call setreg()')]])
|
||||||
execute([[call ErrExe('call setreg(1)')]])
|
execute([[call ErrExe('call setreg(1)')]])
|
||||||
@ -162,10 +211,10 @@ describe('eval', function()
|
|||||||
execute('delcommand AR')
|
execute('delcommand AR')
|
||||||
execute('call garbagecollect(1)')
|
execute('call garbagecollect(1)')
|
||||||
|
|
||||||
execute('/^start:/+1,$wq! test.out')
|
execute('/^start:/+1,$w! test.out')
|
||||||
-- Vim: et ts=4 isk-=\: fmr=???,???.
|
-- Vim: et ts=4 isk-=\: fmr=???,???. -- TODO
|
||||||
execute('call getchar()')
|
--execute('call getchar()') -- TODO
|
||||||
execute('e test.out')
|
execute('e! test.out')
|
||||||
execute('%d')
|
execute('%d')
|
||||||
-- Function name not starting with a capital.
|
-- Function name not starting with a capital.
|
||||||
execute('try')
|
execute('try')
|
||||||
@ -174,11 +223,12 @@ describe('eval', function()
|
|||||||
execute(' endfunc')
|
execute(' endfunc')
|
||||||
execute('catch')
|
execute('catch')
|
||||||
execute(' $put =v:exception')
|
execute(' $put =v:exception')
|
||||||
|
execute(' let tmp = v:exception')
|
||||||
execute('endtry')
|
execute('endtry')
|
||||||
|
eq('Vim(function):E128: Function name must start with a capital or "s:": g:test()', eval('tmp'))
|
||||||
-- Function name folowed by #.
|
-- Function name folowed by #.
|
||||||
execute('try')
|
execute('try')
|
||||||
-- #.
|
execute(' func! test2() "#')
|
||||||
execute(' func! test2()')
|
|
||||||
execute(' echo "test2"')
|
execute(' echo "test2"')
|
||||||
execute(' endfunc')
|
execute(' endfunc')
|
||||||
execute('catch')
|
execute('catch')
|
||||||
|
Loading…
Reference in New Issue
Block a user