Merge pull request #4166 from lucc/legacy/command_count

tests: Migrate legacy test command_count.
This commit is contained in:
Justin M. Keyes
2016-02-15 01:10:15 -05:00
4 changed files with 243 additions and 197 deletions

View File

@@ -27,7 +27,6 @@ SCRIPTS := \
test_breakindent.out \
test_charsearch.out \
test_close_count.out \
test_command_count.out \
test_marks.out \
NEW_TESTS =

View File

@@ -1,158 +0,0 @@
Test for user command counts vim: set ft=vim :
STARTTEST
:so tiny.vim
:lang C
:let g:lines = []
:com -range=% RangeLines :call add(g:lines, 'RangeLines '.<line1>.' '.<line2>)
:com -range -addr=arguments RangeArguments :call add(g:lines, 'RangeArguments '.<line1>.' '.<line2>)
:com -range=% -addr=arguments RangeArgumentsAll :call add(g:lines, 'RangeArgumentsAll '.<line1>.' '.<line2>)
:com -range -addr=loaded_buffers RangeLoadedBuffers :call add(g:lines, 'RangeLoadedBuffers '.<line1>.' '.<line2>)
:com -range=% -addr=loaded_buffers RangeLoadedBuffersAll :call add(g:lines, 'RangeLoadedBuffersAll '.<line1>.' '.<line2>)
:com -range -addr=buffers RangeBuffers :call add(g:lines, 'RangeBuffers '.<line1>.' '.<line2>)
:com -range=% -addr=buffers RangeBuffersAll :call add(g:lines, 'RangeBuffersAll '.<line1>.' '.<line2>)
:com -range -addr=windows RangeWindows :call add(g:lines, 'RangeWindows '.<line1>.' '.<line2>)
:com -range=% -addr=windows RangeWindowsAll :call add(g:lines, 'RangeWindowsAll '.<line1>.' '.<line2>)
:com -range -addr=tabs RangeTabs :call add(g:lines, 'RangeTabs '.<line1>.' '.<line2>)
:com -range=% -addr=tabs RangeTabsAll :call add(g:lines, 'RangeTabsAll '.<line1>.' '.<line2>)
:set hidden
:arga a b c d
:argdo echo "loading buffers"
:argu 3
:.-,$-RangeArguments
:%RangeArguments
:RangeArgumentsAll
:N
:.RangeArguments
:split|split|split|split
:3wincmd w
:.,$RangeWindows
:%RangeWindows
:RangeWindowsAll
:only
:blast|bd
:.,$RangeLoadedBuffers
:%RangeLoadedBuffers
:RangeLoadedBuffersAll
:.,$RangeBuffers
:%RangeBuffers
:RangeBuffersAll
:tabe|tabe|tabe|tabe
:normal 2gt
:.,$RangeTabs
:%RangeTabs
:RangeTabsAll
:1tabonly
:s/\n/\r\r\r\r\r/
:2ma<
:$-ma>
:'<,'>RangeLines
:com -range=% -buffer LocalRangeLines :call add(g:lines, 'LocalRangeLines '.<line1>.' '.<line2>)
:'<,'>LocalRangeLines
:b1
ENDTEST
STARTTEST
:call add(g:lines, '')
:%argd
:arga a b c d
:let v:errmsg = ''
:5argu
:call add(g:lines, '5argu ' . v:errmsg)
:$argu
:call add(g:lines, '4argu ' . expand('%:t'))
:let v:errmsg = ''
:1argu
:call add(g:lines, '1argu ' . expand('%:t'))
:let v:errmsg = ''
:100b
:call add(g:lines, '100b ' . v:errmsg)
:split|split|split|split
:let v:errmsg = ''
:0close
:call add(g:lines, '0close ' . v:errmsg)
:$wincmd w
:$close
:call add(g:lines, '$close ' . winnr())
:let v:errmsg = ''
:$+close
:call add(g:lines, '$+close ' . v:errmsg)
:$tabe
:call add(g:lines, '$tabe ' . tabpagenr())
:let v:errmsg = ''
:$+tabe
:call add(g:lines, '$+tabe ' . v:errmsg)
:only!
:e x
:0tabm
:normal 1gt
:call add(g:lines, '0tabm ' . expand('%:t'))
:tabonly!
:only!
:e! test.out
:call append(0, g:lines)
:unlet g:lines
:w|bd
:b1
ENDTEST
STARTTEST
:let g:lines = []
:func BufStatus()
: call add(g:lines, 'aaa: ' . buflisted(g:buf_aaa) . ' bbb: ' . buflisted(g:buf_bbb) . ' ccc: ' . buflisted(g:buf_ccc))
:endfunc
:se nohidden
:e aaa
:let buf_aaa = bufnr('%')
:e bbb
:let buf_bbb = bufnr('%')
:e ccc
:let buf_ccc = bufnr('%')
:b1
:call BufStatus()
:exe buf_bbb . "," . buf_ccc . "bdelete"
:call BufStatus()
:exe buf_aaa . "bdelete"
:call BufStatus()
:e! test.out
:call append('$', g:lines)
:unlet g:lines
:delfunc BufStatus
:w|bd
:b1
ENDTEST
STARTTEST
:se hidden
:only!
:let g:lines = []
:%argd
:arga a b c d e f
:3argu
:let args = ''
:.,$-argdo let args .= ' '.expand('%')
:call add(g:lines, 'argdo:' . args)
:split|split|split|split
:2wincmd w
:let windows = ''
:.,$-windo let windows .= ' '.winnr()
:call add(g:lines, 'windo:'. windows)
:b2
:let buffers = ''
:.,$-bufdo let buffers .= ' '.bufnr('%')
:call add(g:lines, 'bufdo:' . buffers)
:3bd
:let buffers = ''
:3,7bufdo let buffers .= ' '.bufnr('%')
:call add(g:lines, 'bufdo:' . buffers)
:tabe|tabe|tabe|tabe
:normal! 2gt
:let tabpages = ''
:.,$-tabdo let tabpages .= ' '.tabpagenr()
:call add(g:lines, 'tabdo:' . tabpages)
:e! test.out
:call append('$', g:lines)
:w|qa!
ENDTEST

View File

@@ -1,38 +0,0 @@
RangeArguments 2 4
RangeArguments 1 5
RangeArgumentsAll 1 5
RangeArguments 2 2
RangeWindows 3 5
RangeWindows 1 5
RangeWindowsAll 1 5
RangeLoadedBuffers 2 4
RangeLoadedBuffers 1 4
RangeLoadedBuffersAll 1 4
RangeBuffers 2 5
RangeBuffers 1 5
RangeBuffersAll 1 5
RangeTabs 2 5
RangeTabs 1 5
RangeTabsAll 1 5
RangeLines 2 5
LocalRangeLines 2 5
5argu E16: Invalid range
4argu d
1argu a
100b E16: Invalid range
0close
$close 3
$+close E16: Invalid range
$tabe 2
$+tabe E16: Invalid range
0tabm x
aaa: 1 bbb: 1 ccc: 1
aaa: 1 bbb: 0 ccc: 0
aaa: 0 bbb: 0 ccc: 0
argdo: c d e
windo: 2 3 4
bufdo: 2 3 4 5 6 7 8 9 10 15
bufdo: 4 5 6 7
tabdo: 2 3 4

View File

@@ -0,0 +1,243 @@
-- Test for user command counts
local helpers = require('test.functional.helpers')
local clear, source, expect = helpers.clear, helpers.source, helpers.expect
local execute, spawn = helpers.execute, helpers.spawn
local nvim_prog = helpers.nvim_prog
describe('command_count', function()
setup(clear)
teardown(function()
os.remove('test.out')
end)
it('is working', function()
-- It is relevant for the test to load a file initially. If this is
-- emulated with :arg the buffer count is wrong as nvim creates an empty
-- buffer if it was started without a filename.
local nvim2 = spawn({nvim_prog, '-u', 'NONE', '-i', 'NONE', '--embed',
'test_command_count.in'})
helpers.set_session(nvim2)
source([[
lang C
let g:lines = []
com -range=% RangeLines
\ :call add(g:lines, 'RangeLines '.<line1>.' '.<line2>)
com -range -addr=arguments RangeArguments
\ :call add(g:lines, 'RangeArguments '.<line1>.' '.<line2>)
com -range=% -addr=arguments RangeArgumentsAll
\ :call add(g:lines, 'RangeArgumentsAll '.<line1>.' '.<line2>)
com -range -addr=loaded_buffers RangeLoadedBuffers
\ :call add(g:lines, 'RangeLoadedBuffers '.<line1>.' '.<line2>)
com -range=% -addr=loaded_buffers RangeLoadedBuffersAll
\ :call add(g:lines, 'RangeLoadedBuffersAll '.<line1>.' '.<line2>)
com -range -addr=buffers RangeBuffers
\ :call add(g:lines, 'RangeBuffers '.<line1>.' '.<line2>)
com -range=% -addr=buffers RangeBuffersAll
\ :call add(g:lines, 'RangeBuffersAll '.<line1>.' '.<line2>)
com -range -addr=windows RangeWindows
\ :call add(g:lines, 'RangeWindows '.<line1>.' '.<line2>)
com -range=% -addr=windows RangeWindowsAll
\ :call add(g:lines, 'RangeWindowsAll '.<line1>.' '.<line2>)
com -range -addr=tabs RangeTabs
\ :call add(g:lines, 'RangeTabs '.<line1>.' '.<line2>)
com -range=% -addr=tabs RangeTabsAll
\ :call add(g:lines, 'RangeTabsAll '.<line1>.' '.<line2>)
set hidden
arga a b c d
argdo echo "loading buffers"
argu 3
.-,$-RangeArguments
%RangeArguments
RangeArgumentsAll
N
.RangeArguments
split
split
split
split
3wincmd w
.,$RangeWindows
%RangeWindows
RangeWindowsAll
only
blast
bd
.,$RangeLoadedBuffers
%RangeLoadedBuffers
RangeLoadedBuffersAll
.,$RangeBuffers
%RangeBuffers
RangeBuffersAll
tabe
tabe
tabe
tabe
normal 2gt
.,$RangeTabs
%RangeTabs
RangeTabsAll
1tabonly
s/\n/\r\r\r\r\r/
2ma<
$-ma>
'<,'>RangeLines
com -range=% -buffer LocalRangeLines
\ :call add(g:lines, 'LocalRangeLines '.<line1>.' '.<line2>)
'<,'>LocalRangeLines
b1
call add(g:lines, '')
%argd
arga a b c d
]])
-- This can not be in the source() call as it will produce errors.
execute([[let v:errmsg = '']])
execute('5argu')
execute([[call add(g:lines, '5argu ' . v:errmsg)]])
execute('$argu')
execute([[call add(g:lines, '4argu ' . expand('%:t'))]])
execute([[let v:errmsg = '']])
execute('1argu')
execute([[call add(g:lines, '1argu ' . expand('%:t'))]])
execute([[let v:errmsg = '']])
execute('100b')
execute([[call add(g:lines, '100b ' . v:errmsg)]])
execute('split')
execute('split')
execute('split')
execute('split')
execute([[let v:errmsg = '']])
execute('0close')
execute([[call add(g:lines, '0close ' . v:errmsg)]])
execute('$wincmd w')
execute('$close')
execute([[call add(g:lines, '$close ' . winnr())]])
execute([[let v:errmsg = '']])
execute('$+close')
execute([[call add(g:lines, '$+close ' . v:errmsg)]])
execute('$tabe')
execute([[call add(g:lines, '$tabe ' . tabpagenr())]])
execute([[let v:errmsg = '']])
execute('$+tabe')
execute([[call add(g:lines, '$+tabe ' . v:errmsg)]])
source([[
only!
e x
0tabm
normal 1gt
call add(g:lines, '0tabm ' . expand('%:t'))
tabonly!
only!
e! test.out
call append(0, g:lines)
unlet g:lines
w
bd
b1
let g:lines = []
func BufStatus()
call add(g:lines,
\ 'aaa: ' . buflisted(g:buf_aaa) .
\ ' bbb: ' . buflisted(g:buf_bbb) .
\ ' ccc: ' . buflisted(g:buf_ccc))
endfunc
se nohidden
e aaa
let buf_aaa = bufnr('%')
e bbb
let buf_bbb = bufnr('%')
e ccc
let buf_ccc = bufnr('%')
b1
call BufStatus()
exe buf_bbb . "," . buf_ccc . "bdelete"
call BufStatus()
exe buf_aaa . "bdelete"
call BufStatus()
e! test.out
call append('$', g:lines)
unlet g:lines
delfunc BufStatus
w
bd
b1
se hidden
only!
let g:lines = []
%argd
arga a b c d e f
3argu
let args = ''
.,$-argdo let args .= ' '.expand('%')
call add(g:lines, 'argdo:' . args)
split
split
split
split
2wincmd w
let windows = ''
.,$-windo let windows .= ' '.winnr()
call add(g:lines, 'windo:'. windows)
b2
let buffers = ''
.,$-bufdo let buffers .= ' '.bufnr('%')
call add(g:lines, 'bufdo:' . buffers)
3bd
let buffers = ''
3,7bufdo let buffers .= ' '.bufnr('%')
call add(g:lines, 'bufdo:' . buffers)
tabe
tabe
tabe
tabe
normal! 2gt
let tabpages = ''
.,$-tabdo let tabpages .= ' '.tabpagenr()
call add(g:lines, 'tabdo:' . tabpages)
e! test.out
call append('$', g:lines)
]])
-- Assert buffer contents.
expect([[
RangeArguments 2 4
RangeArguments 1 5
RangeArgumentsAll 1 5
RangeArguments 2 2
RangeWindows 3 5
RangeWindows 1 5
RangeWindowsAll 1 5
RangeLoadedBuffers 2 4
RangeLoadedBuffers 1 4
RangeLoadedBuffersAll 1 4
RangeBuffers 2 5
RangeBuffers 1 5
RangeBuffersAll 1 5
RangeTabs 2 5
RangeTabs 1 5
RangeTabsAll 1 5
RangeLines 2 5
LocalRangeLines 2 5
5argu E16: Invalid range
4argu d
1argu a
100b E16: Invalid range
0close
$close 3
$+close E16: Invalid range
$tabe 2
$+tabe E16: Invalid range
0tabm x
aaa: 1 bbb: 1 ccc: 1
aaa: 1 bbb: 0 ccc: 0
aaa: 0 bbb: 0 ccc: 0
argdo: c d e
windo: 2 3 4
bufdo: 2 3 4 5 6 7 8 9 10 15
bufdo: 4 5 6 7
tabdo: 2 3 4]])
end)
end)