From 65fb622000af8e3dbb65480e1581758ecf4ba3e2 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sun, 9 Apr 2017 00:12:26 +0300 Subject: functests: Replace execute with either command or feed_command Hope this will make people using feed_command less likely: this hides bugs. Already found at least two: 1. msgpackparse() will show internal error: hash_add() in case of duplicate keys, though it will still work correctly. Currently silenced. 2. ttimeoutlen was spelled incorrectly, resulting in option not being set when expected. Test was still functioning somehow though. Currently fixed. --- test/functional/legacy/eval_spec.lua | 356 ++++++++++++++++++----------------- 1 file changed, 179 insertions(+), 177 deletions(-) (limited to 'test/functional/legacy/eval_spec.lua') diff --git a/test/functional/legacy/eval_spec.lua b/test/functional/legacy/eval_spec.lua index 3684fe714d..936c2562f3 100644 --- a/test/functional/legacy/eval_spec.lua +++ b/test/functional/legacy/eval_spec.lua @@ -2,8 +2,10 @@ local helpers = require('test.functional.helpers')(after_each) local feed, insert, source = helpers.feed, helpers.insert, helpers.source -local clear, execute, expect = helpers.clear, helpers.execute, helpers.expect +local clear, command, expect = helpers.clear, helpers.command, helpers.expect local eq, eval, write_file = helpers.eq, helpers.eval, helpers.write_file +local wait = helpers.wait +local exc_exec = helpers.exc_exec describe('eval', function() setup(function() @@ -37,17 +39,17 @@ describe('eval', function() end) it(':let', function() - execute('so test_eval_setup.vim') - execute([[let @" = 'abc']]) - execute('AR "') - execute([[let @" = "abc\n"]]) + command('so test_eval_setup.vim') + command([[let @" = 'abc']]) + command('AR "') + command([[let @" = "abc\n"]]) source('AR "') - execute([[let @" = "abc\"]]) - execute('AR "') - execute([[let @= = '"abc"']]) - execute('AR =') + command([[let @" = "abc\"]]) + command('AR "') + command([[let @= = '"abc"']]) + command('AR =') expect([[ - + ": type v; value: abc (['abc']), expr: abc (['abc']) ": type V; value: abc]].."\000 (['abc']), expr: abc\000"..[[ (['abc']) ": type V; value: abc]].."\r\000 (['abc\r']), expr: abc\r\000 (['abc\r"..[[']) @@ -55,32 +57,33 @@ describe('eval', function() end) it('basic setreg() tests', function() - execute('so test_eval_setup.vim') + command('so test_eval_setup.vim') insert('{{{1 Basic setreg tests') - execute([[call SetReg('a', 'abcA', 'c')]]) - execute([[call SetReg('b', 'abcB', 'v')]]) - execute([[call SetReg('c', 'abcC', 'l')]]) - execute([[call SetReg('d', 'abcD', 'V')]]) - execute([[call SetReg('e', 'abcE', 'b')]]) - execute([[call SetReg('f', 'abcF', "\")]]) - execute([[call SetReg('g', 'abcG', 'b10')]]) - execute([[call SetReg('h', 'abcH', "\10")]]) - execute([[call SetReg('I', 'abcI')]]) + command([[call SetReg('a', 'abcA', 'c')]]) + command([[call SetReg('b', 'abcB', 'v')]]) + command([[call SetReg('c', 'abcC', 'l')]]) + command([[call SetReg('d', 'abcD', 'V')]]) + command([[call SetReg('e', 'abcE', 'b')]]) + command([[call SetReg('f', 'abcF', "\")]]) + command([[call SetReg('g', 'abcG', 'b10')]]) + command([[call SetReg('h', 'abcH', "\10")]]) + command([[call SetReg('I', 'abcI')]]) feed('Go{{{1 Appending single lines with setreg()') - execute([[call SetReg('A', 'abcAc', 'c')]]) - execute([[call SetReg('A', 'abcAl', 'l')]]) - execute([[call SetReg('A', 'abcAc2','c')]]) - execute([[call SetReg('b', 'abcBc', 'ca')]]) - execute([[call SetReg('b', 'abcBb', 'ba')]]) - execute([[call SetReg('b', 'abcBc2','ca')]]) - execute([[call SetReg('b', 'abcBb2','b50a')]]) - execute([[call SetReg('C', 'abcCl', 'l')]]) - execute([[call SetReg('C', 'abcCc', 'c')]]) - execute([[call SetReg('D', 'abcDb', 'b')]]) - execute([[call SetReg('E', 'abcEb', 'b')]]) - execute([[call SetReg('E', 'abcEl', 'l')]]) - execute([[call SetReg('F', 'abcFc', 'c')]]) + wait() + command([[call SetReg('A', 'abcAc', 'c')]]) + command([[call SetReg('A', 'abcAl', 'l')]]) + command([[call SetReg('A', 'abcAc2','c')]]) + command([[call SetReg('b', 'abcBc', 'ca')]]) + command([[call SetReg('b', 'abcBb', 'ba')]]) + command([[call SetReg('b', 'abcBc2','ca')]]) + command([[call SetReg('b', 'abcBb2','b50a')]]) + command([[call SetReg('C', 'abcCl', 'l')]]) + command([[call SetReg('C', 'abcCc', 'c')]]) + command([[call SetReg('D', 'abcDb', 'b')]]) + command([[call SetReg('E', 'abcEb', 'b')]]) + command([[call SetReg('E', 'abcEl', 'l')]]) + command([[call SetReg('F', 'abcFc', 'c')]]) expect([[ {{{1 Basic setreg tests {{{2 setreg('a', 'abcA', 'c') @@ -191,14 +194,14 @@ describe('eval', function() end) it('appending NL with setreg()', function() - execute('so test_eval_setup.vim') - - execute([[call setreg('a', 'abcA2', 'c')]]) - execute([[call setreg('b', 'abcB2', 'v')]]) - execute([[call setreg('c', 'abcC2', 'l')]]) - execute([[call setreg('d', 'abcD2', 'V')]]) - execute([[call setreg('e', 'abcE2', 'b')]]) - execute([[call setreg('f', 'abcF2', "\")]]) + command('so test_eval_setup.vim') + + command([[call setreg('a', 'abcA2', 'c')]]) + command([[call setreg('b', 'abcB2', 'v')]]) + command([[call setreg('c', 'abcC2', 'l')]]) + command([[call setreg('d', 'abcD2', 'V')]]) + command([[call setreg('e', 'abcE2', 'b')]]) + command([[call setreg('f', 'abcF2', "\")]]) -- These registers where set like this in the old test_eval.in but never -- copied to the output buffer with SetReg(). They do not appear in -- test_eval.ok. Therefore they are commented out. @@ -206,14 +209,14 @@ describe('eval', function() --execute([[call setreg('h', 'abcH2', "\10")]]) --execute([[call setreg('I', 'abcI2')]]) - execute([[call SetReg('A', "\n")]]) - execute([[call SetReg('B', "\n", 'c')]]) - execute([[call SetReg('C', "\n")]]) - execute([[call SetReg('D', "\n", 'l')]]) - execute([[call SetReg('E', "\n")]]) - execute([[call SetReg('F', "\n", 'b')]]) + command([[call SetReg('A', "\n")]]) + command([[call SetReg('B', "\n", 'c')]]) + command([[call SetReg('C', "\n")]]) + command([[call SetReg('D', "\n", 'l')]]) + command([[call SetReg('E', "\n")]]) + command([[call SetReg('F', "\n", 'b')]]) expect([[ - + {{{2 setreg('A', ']]..'\000'..[[') A: type V; value: abcA2]].."\000 (['abcA2']), expr: abcA2\000"..[[ (['abcA2']) == @@ -228,19 +231,19 @@ describe('eval', function() C: type V; value: abcC2]].."\000\000 (['abcC2', '']), expr: abcC2\000\000"..[[ (['abcC2', '']) == abcC2 - + == {{{2 setreg('D', ']]..'\000'..[[', 'l') D: type V; value: abcD2]].."\000\000 (['abcD2', '']), expr: abcD2\000\000"..[[ (['abcD2', '']) == abcD2 - + == {{{2 setreg('E', ']]..'\000'..[[') E: type V; value: abcE2]].."\000\000 (['abcE2', '']), expr: abcE2\000\000"..[[ (['abcE2', '']) == abcE2 - + == {{{2 setreg('F', ']]..'\000'..[[', 'b') F: type ]].."\0220; value: abcF2\000 (['abcF2', '']), expr: abcF2\000"..[[ (['abcF2', '']) @@ -250,27 +253,27 @@ describe('eval', function() end) it('setting and appending list with setreg()', function() - execute('so test_eval_setup.vim') - - execute([[$put ='{{{1 Setting lists with setreg()']]) - execute([=[call SetReg('a', ['abcA3'], 'c')]=]) - execute([=[call SetReg('b', ['abcB3'], 'l')]=]) - execute([=[call SetReg('c', ['abcC3'], 'b')]=]) - execute([=[call SetReg('d', ['abcD3'])]=]) - execute([=[call SetReg('e', [1, 2, 'abc', 3])]=]) - execute([=[call SetReg('f', [1, 2, 3])]=]) - - execute([[$put ='{{{1 Appending lists with setreg()']]) - execute([=[call SetReg('A', ['abcA3c'], 'c')]=]) - execute([=[call SetReg('b', ['abcB3l'], 'la')]=]) - execute([=[call SetReg('C', ['abcC3b'], 'lb')]=]) - execute([=[call SetReg('D', ['abcD32'])]=]) - execute([=[call SetReg('A', ['abcA32'])]=]) - execute([=[call SetReg('B', ['abcB3c'], 'c')]=]) - execute([=[call SetReg('C', ['abcC3l'], 'l')]=]) - execute([=[call SetReg('D', ['abcD3b'], 'b')]=]) + command('so test_eval_setup.vim') + + command([[$put ='{{{1 Setting lists with setreg()']]) + command([=[call SetReg('a', ['abcA3'], 'c')]=]) + command([=[call SetReg('b', ['abcB3'], 'l')]=]) + command([=[call SetReg('c', ['abcC3'], 'b')]=]) + command([=[call SetReg('d', ['abcD3'])]=]) + command([=[call SetReg('e', [1, 2, 'abc', 3])]=]) + command([=[call SetReg('f', [1, 2, 3])]=]) + + command([[$put ='{{{1 Appending lists with setreg()']]) + command([=[call SetReg('A', ['abcA3c'], 'c')]=]) + command([=[call SetReg('b', ['abcB3l'], 'la')]=]) + command([=[call SetReg('C', ['abcC3b'], 'lb')]=]) + command([=[call SetReg('D', ['abcD32'])]=]) + command([=[call SetReg('A', ['abcA32'])]=]) + command([=[call SetReg('B', ['abcB3c'], 'c')]=]) + command([=[call SetReg('C', ['abcC3l'], 'l')]=]) + command([=[call SetReg('D', ['abcD3b'], 'b')]=]) expect([[ - + {{{1 Setting lists with setreg() {{{2 setreg('a', ['abcA3'], 'c') a: type v; value: abcA3 (['abcA3']), expr: abcA3 (['abcA3']) @@ -359,9 +362,9 @@ describe('eval', function() -- the next expect() easier to write. This is neccessary because null -- bytes on a line by itself don't play well together with the dedent -- function used in expect(). - execute('%delete') - execute([[$put ='{{{1 Appending lists with NL with setreg()']]) - execute([=[call SetReg('A', ["\n", 'abcA3l2'], 'l')]=]) + command('%delete') + command([[$put ='{{{1 Appending lists with NL with setreg()']]) + command([=[call SetReg('A', ["\n", 'abcA3l2'], 'l')]=]) expect( '\n'.. '{{{1 Appending lists with NL with setreg()\n'.. @@ -374,8 +377,8 @@ describe('eval', function() '\000\n'.. 'abcA3l2\n'.. '==') - execute('%delete') - execute([=[call SetReg('B', ["\n", 'abcB3c2'], 'c')]=]) + command('%delete') + command([=[call SetReg('B', ["\n", 'abcB3c2'], 'c')]=]) expect( '\n'.. "{{{2 setreg('B', ['\000', 'abcB3c2'], 'c')\n".. @@ -386,8 +389,8 @@ describe('eval', function() 'abcB3c\n'.. '\000\n'.. 'abcB3c2=') - execute('%delete') - execute([=[call SetReg('C', ["\n", 'abcC3b2'], 'b')]=]) + command('%delete') + command([=[call SetReg('C', ["\n", 'abcC3b2'], 'b')]=]) expect( '\n'.. "{{{2 setreg('C', ['\000', 'abcC3b2'], 'b')\n".. @@ -398,8 +401,8 @@ describe('eval', function() ' abcC3l\n'.. ' \000\n'.. ' abcC3b2') - execute('%delete') - execute([=[call SetReg('D', ["\n", 'abcD3b50'],'b50')]=]) + command('%delete') + command([=[call SetReg('D', ["\n", 'abcD3b50'],'b50')]=]) expect( '\n'.. "{{{2 setreg('D', ['\000', 'abcD3b50'], 'b50')\n".. @@ -416,8 +419,8 @@ describe('eval', function() -- to make the expect() calls easier to write. Otherwise the null byte can -- make trouble on a line on its own. it('setting lists with NLs with setreg(), part 1', function() - execute('so test_eval_setup.vim') - execute([=[call SetReg('a', ['abcA4-0', "\n", "abcA4-2\n", "\nabcA4-3", "abcA4-4\nabcA4-4-2"])]=]) + command('so test_eval_setup.vim') + command([=[call SetReg('a', ['abcA4-0', "\n", "abcA4-2\n", "\nabcA4-3", "abcA4-4\nabcA4-4-2"])]=]) expect( '\n'.. "{{{2 setreg('a', ['abcA4-0', '\000', 'abcA4-2\000', '\000abcA4-3', 'abcA4-4\000abcA4-4-2'])\n".. @@ -432,8 +435,8 @@ describe('eval', function() end) it('setting lists with NLs with setreg(), part 2', function() - execute('so test_eval_setup.vim') - execute([=[call SetReg('b', ['abcB4c-0', "\n", "abcB4c-2\n", "\nabcB4c-3", "abcB4c-4\nabcB4c-4-2"], 'c')]=]) + command('so test_eval_setup.vim') + command([=[call SetReg('b', ['abcB4c-0', "\n", "abcB4c-2\n", "\nabcB4c-3", "abcB4c-4\nabcB4c-4-2"], 'c')]=]) expect( '\n'.. "{{{2 setreg('b', ['abcB4c-0', '\000', 'abcB4c-2\000', '\000abcB4c-3', 'abcB4c-4\000abcB4c-4-2'], 'c')\n".. @@ -447,8 +450,8 @@ describe('eval', function() end) it('setting lists with NLs with setreg(), part 3', function() - execute('so test_eval_setup.vim') - execute([=[call SetReg('c', ['abcC4l-0', "\n", "abcC4l-2\n", "\nabcC4l-3", "abcC4l-4\nabcC4l-4-2"], 'l')]=]) + command('so test_eval_setup.vim') + command([=[call SetReg('c', ['abcC4l-0', "\n", "abcC4l-2\n", "\nabcC4l-3", "abcC4l-4\nabcC4l-4-2"], 'l')]=]) expect( '\n'.. "{{{2 setreg('c', ['abcC4l-0', '\000', 'abcC4l-2\000', '\000abcC4l-3', 'abcC4l-4\000abcC4l-4-2'], 'l')\n".. @@ -462,8 +465,8 @@ describe('eval', function() '==') end) it('setting lists with NLs with setreg(), part 4', function() - execute('so test_eval_setup.vim') - execute([=[call SetReg('d', ['abcD4b-0', "\n", "abcD4b-2\n", "\nabcD4b-3", "abcD4b-4\nabcD4b-4-2"], 'b')]=]) + command('so test_eval_setup.vim') + command([=[call SetReg('d', ['abcD4b-0', "\n", "abcD4b-2\n", "\nabcD4b-3", "abcD4b-4\nabcD4b-4-2"], 'b')]=]) expect( '\n'.. "{{{2 setreg('d', ['abcD4b-0', '\000', 'abcD4b-2\000', '\000abcD4b-3', 'abcD4b-4\000abcD4b-4-2'], 'b')\n".. @@ -476,8 +479,8 @@ describe('eval', function() ' abcD4b-4\000abcD4b-4-2') end) it('setting lists with NLs with setreg(), part 5', function() - execute('so test_eval_setup.vim') - execute([=[call SetReg('e', ['abcE4b10-0', "\n", "abcE4b10-2\n", "\nabcE4b10-3", "abcE4b10-4\nabcE4b10-4-2"], 'b10')]=]) + command('so test_eval_setup.vim') + command([=[call SetReg('e', ['abcE4b10-0', "\n", "abcE4b10-2\n", "\nabcE4b10-3", "abcE4b10-4\nabcE4b10-4-2"], 'b10')]=]) expect( '\n'.. "{{{2 setreg('e', ['abcE4b10-0', '\000', 'abcE4b10-2\000', '\000abcE4b10-3', 'abcE4b10-4\000abcE4b10-4-2'], 'b10')\n".. @@ -494,32 +497,32 @@ describe('eval', function() -- Precondition: "a is actually unset and "0 is nonempty eq('', eval("getregtype('a')")) eq('', eval("getreg('a')")) - execute("call setreg('0','text')") + command("call setreg('0','text')") -- This used to return a NULL list -- which setreg didn't handle - execute("let x = getreg('a',1,1)") - execute("call setreg('0',x)") + command("let x = getreg('a',1,1)") + command("call setreg('0',x)") -- nvim didn't crash and "0 was emptied eq(2, eval("1+1")) eq({}, eval("getreg('0',1,1)")) -- x is a mutable list - execute("let y = x") + command("let y = x") eq({}, eval("y")) - execute("call add(x, 'item')") + command("call add(x, 'item')") eq({'item'}, eval("y")) end) it('search and expressions', function() - execute('so test_eval_setup.vim') - execute([=[call SetReg('/', ['abc/'])]=]) - execute([=[call SetReg('/', ["abc/\n"])]=]) - execute([=[call SetReg('=', ['"abc/"'])]=]) - execute([=[call SetReg('=', ["\"abc/\n\""])]=]) + command('so test_eval_setup.vim') + command([=[call SetReg('/', ['abc/'])]=]) + command([=[call SetReg('/', ["abc/\n"])]=]) + command([=[call SetReg('=', ['"abc/"'])]=]) + command([=[call SetReg('=', ["\"abc/\n\""])]=]) expect([[ - + {{{2 setreg('/', ['abc/']) /: type v; value: abc/ (['abc/']), expr: abc/ (['abc/']) == @@ -536,35 +539,35 @@ describe('eval', function() describe('system clipboard', function() before_each(function() - execute('let &runtimepath = "test/functional/fixtures,".&runtimepath') - execute('call getreg("*")') -- force load of provider + command('let &runtimepath = "test/functional/fixtures,".&runtimepath') + command('call getreg("*")') -- force load of provider end) it('works', function() insert([[ Some first line (this text was at the top of the old test_eval.in). - + Note: system clipboard is saved, changed and restored. - + clipboard contents something else]]) - execute('so test_eval_setup.vim') + command('so test_eval_setup.vim') -- Save and restore system clipboard. - execute("let _clipreg = ['*', getreg('*'), getregtype('*')]") - execute('let _clipopt = &cb') - execute("let &cb='unnamed'") - execute('5y') - execute('AR *') - execute('tabdo :windo :echo "hi"') - execute('6y') - execute('AR *') - execute('let &cb=_clipopt') - execute("call call('setreg', _clipreg)") + command("let _clipreg = ['*', getreg('*'), getregtype('*')]") + command('let _clipopt = &cb') + command("let &cb='unnamed'") + command('5y') + command('AR *') + command('tabdo :windo :echo "hi"') + command('6y') + command('AR *') + command('let &cb=_clipopt') + command("call call('setreg', _clipreg)") expect([[ Some first line (this text was at the top of the old test_eval.in). - + Note: system clipboard is saved, changed and restored. - + clipboard contents something else *: type V; value: clipboard contents]]..'\00'..[[ (['clipboard contents']), expr: clipboard contents]]..'\00'..[[ (['clipboard contents']) @@ -582,17 +585,17 @@ describe('eval', function() $put =v:exception endtry endfun]]) - execute([[call ErrExe('call setreg()')]]) - execute([[call ErrExe('call setreg(1)')]]) - execute([[call ErrExe('call setreg(1, 2, 3, 4)')]]) - execute([=[call ErrExe('call setreg([], 2)')]=]) - execute([[call ErrExe('call setreg(1, {})')]]) - execute([=[call ErrExe('call setreg(1, 2, [])')]=]) - execute([=[call ErrExe('call setreg("/", ["1", "2"])')]=]) - execute([=[call ErrExe('call setreg("=", ["1", "2"])')]=]) - execute([=[call ErrExe('call setreg(1, ["", "", [], ""])')]=]) + command([[call ErrExe('call setreg()')]]) + command([[call ErrExe('call setreg(1)')]]) + command([[call ErrExe('call setreg(1, 2, 3, 4)')]]) + command([=[call ErrExe('call setreg([], 2)')]=]) + command([[call ErrExe('call setreg(1, {})')]]) + command([=[call ErrExe('call setreg(1, 2, [])')]=]) + command([=[call ErrExe('call setreg("/", ["1", "2"])')]=]) + command([=[call ErrExe('call setreg("=", ["1", "2"])')]=]) + command([=[call ErrExe('call setreg(1, ["", "", [], ""])')]=]) expect([[ - + Executing call setreg() Vim(call):E119: Not enough arguments for function: setreg Executing call setreg(1) @@ -614,48 +617,48 @@ describe('eval', function() end) it('function name not starting with a capital', function() - execute('try') - execute(' func! g:test()') - execute(' echo "test"') - execute(' endfunc') - execute('catch') - execute(' let tmp = v:exception') - execute('endtry') + command('try') + command(' func! g:test()') + command(' echo "test"') + command(' endfunc') + command('catch') + command(' let tmp = v:exception') + command('endtry') eq('Vim(function):E128: Function name must start with a capital or "s:": g:test()', eval('tmp')) end) it('Function name followed by #', function() - execute('try') - execute(' func! test2() "#') - execute(' echo "test2"') - execute(' endfunc') - execute('catch') - execute(' let tmp = v:exception') - execute('endtry') + command('try') + command(' func! test2() "#') + command(' echo "test2"') + command(' endfunc') + command('catch') + command(' let tmp = v:exception') + command('endtry') eq('Vim(function):E128: Function name must start with a capital or "s:": test2() "#', eval('tmp')) end) it('function name includes a colon', function() - execute('try') - execute(' func! b:test()') - execute(' echo "test"') - execute(' endfunc') - execute('catch') - execute(' let tmp = v:exception') - execute('endtry') + command('try') + command(' func! b:test()') + command(' echo "test"') + command(' endfunc') + command('catch') + command(' let tmp = v:exception') + command('endtry') eq('Vim(function):E128: Function name must start with a capital or "s:": b:test()', eval('tmp')) end) it('function name starting with/without "g:", buffer-local funcref', function() - execute('function! g:Foo(n)') - execute(" $put ='called Foo(' . a:n . ')'") - execute('endfunction') - execute("let b:my_func = function('Foo')") - execute('call b:my_func(1)') - execute('echo g:Foo(2)') - execute('echo Foo(3)') + command('function! g:Foo(n)') + command(" $put ='called Foo(' . a:n . ')'") + command('endfunction') + command("let b:my_func = function('Foo')") + command('call b:my_func(1)') + command('echo g:Foo(2)') + command('echo Foo(3)') expect([[ - + called Foo(1) called Foo(2) called Foo(3)]]) @@ -664,20 +667,20 @@ describe('eval', function() it('script-local function used in Funcref must exist', function() source([[ " 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') ]]) expect([[ - + s:Testje exists: 0 func s:Testje exists: 1 Bar exists: 1 @@ -685,12 +688,8 @@ describe('eval', function() end) it("using $ instead of '$' must give an error", function() - execute('try') - execute(" call append($, 'foobar')") - execute('catch') - execute(' let tmp = v:exception') - execute('endtry') - eq('Vim(call):E116: Invalid arguments for function append', eval('tmp')) + eq('Vim(call):E116: Invalid arguments for function append', + exc_exec('call append($, "foobar")')) end) it('getcurpos/setpos', function() @@ -699,13 +698,16 @@ describe('eval', function() 012345678 start:]]) - execute('/^012345678') + command('/^012345678') feed('6l') - execute('let sp = getcurpos()') + wait() + command('let sp = getcurpos()') feed('0') - execute("call setpos('.', sp)") + wait() + command("call setpos('.', sp)") feed('jyl') - execute('$put') + wait() + command('$put') expect([[ 012345678 012345678 @@ -715,18 +717,18 @@ describe('eval', function() end) it('substring and variable name', function() - execute("let str = 'abcdef'") - execute('let n = 3') + command("let str = 'abcdef'") + command('let n = 3') eq('def', eval('str[n:]')) eq('abcd', eval('str[:n]')) eq('d', eval('str[n:n]')) - execute('unlet n') - execute('let nn = 3') + command('unlet n') + command('let nn = 3') eq('def', eval('str[nn:]')) eq('abcd', eval('str[:nn]')) eq('d', eval('str[nn:nn]')) - execute('unlet nn') - execute('let b:nn = 4') + command('unlet nn') + command('let b:nn = 4') eq('ef', eval('str[b:nn:]')) eq('abcde', eval('str[:b:nn]')) eq('e', eval('str[b:nn:b:nn]')) -- cgit From bd84bf8c818f7673eabad0d9863b98a069cb0d75 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sun, 9 Apr 2017 02:29:18 +0300 Subject: functests: Fix legacy/eval_spec --- test/functional/legacy/eval_spec.lua | 45 +++++++++++++++--------------------- 1 file changed, 18 insertions(+), 27 deletions(-) (limited to 'test/functional/legacy/eval_spec.lua') diff --git a/test/functional/legacy/eval_spec.lua b/test/functional/legacy/eval_spec.lua index 936c2562f3..d7ef508194 100644 --- a/test/functional/legacy/eval_spec.lua +++ b/test/functional/legacy/eval_spec.lua @@ -6,6 +6,7 @@ local clear, command, expect = helpers.clear, helpers.command, helpers.expect local eq, eval, write_file = helpers.eq, helpers.eval, helpers.write_file local wait = helpers.wait local exc_exec = helpers.exc_exec +local dedent = helpers.dedent describe('eval', function() setup(function() @@ -617,42 +618,32 @@ describe('eval', function() end) it('function name not starting with a capital', function() - command('try') - command(' func! g:test()') - command(' echo "test"') - command(' endfunc') - command('catch') - command(' let tmp = v:exception') - command('endtry') - eq('Vim(function):E128: Function name must start with a capital or "s:": g:test()', eval('tmp')) + eq('Vim(function):E128: Function name must start with a capital or "s:": g:test()\\nendfunction', + exc_exec(dedent([[ + function! g:test() + endfunction]]))) end) it('Function name followed by #', function() - command('try') - command(' func! test2() "#') - command(' echo "test2"') - command(' endfunc') - command('catch') - command(' let tmp = v:exception') - command('endtry') - eq('Vim(function):E128: Function name must start with a capital or "s:": test2() "#', eval('tmp')) + eq('Vim(function):E128: Function name must start with a capital or "s:": test2() "#\\nendfunction', + exc_exec(dedent([[ + function! test2() "# + endfunction]]))) end) it('function name includes a colon', function() - command('try') - command(' func! b:test()') - command(' echo "test"') - command(' endfunc') - command('catch') - command(' let tmp = v:exception') - command('endtry') - eq('Vim(function):E128: Function name must start with a capital or "s:": b:test()', eval('tmp')) + eq('Vim(function):E128: Function name must start with a capital or "s:": b:test()\\nendfunction', + exc_exec(dedent([[ + function! b:test() + endfunction]]))) end) it('function name starting with/without "g:", buffer-local funcref', function() - command('function! g:Foo(n)') - command(" $put ='called Foo(' . a:n . ')'") - command('endfunction') + command([[ + function! g:Foo(n) + $put ='called Foo(' . a:n . ')' + endfunction + ]]) command("let b:my_func = function('Foo')") command('call b:my_func(1)') command('echo g:Foo(2)') -- cgit