vim-patch:8.0.0708: some tests are old style

Problem:    Some tests are old style.
Solution:   Change a few tests from old style to new style. (pschuh,
            closes vim/vim#1813)

292eff0c5a
This commit is contained in:
Daniel Hahler 2018-02-24 21:35:28 +01:00
parent 50eadfe2e9
commit 2c64f01674
11 changed files with 324 additions and 34 deletions

View File

@ -15,7 +15,6 @@ export TMPDIR := $(abspath ../../../Xtest-tmpdir)
SCRIPTS_DEFAULT = \
test14.out \
test24.out \
test37.out \
test42.out \
test48.out \
@ -35,7 +34,7 @@ SCRIPTS ?= $(SCRIPTS_DEFAULT)
NEW_TESTS_ALOT := test_alot_utf8 test_alot
NEW_TESTS_IN_ALOT := $(shell sed '/^source/ s/^source //;s/\.vim$$//' test_alot*.vim)
# Ignored tests.
# test_alot_latin1: Nvim does not allow setting encoding.
# test_alot_latin: Nvim does not allow setting encoding.
# test_arglist: ported to Lua, but kept for easier merging.
# test_autochdir: ported to Lua, but kept for easier merging.
# test_eval_func: used as include in old-style test (test_eval.in).

Binary file not shown.

View File

@ -1,32 +0,0 @@
start
test text test text
test text test text
test text test text
test text test text
test text test text
test text test text
test text test text x61
test text test text x60-x64
test text test text x78 5
test text test text o143
test text test text o140-o144
test text test text o41 7
test text test text \%x42
test text test text \%o103
test text test text [\x00]
test text test text [\x00-\x10]
test text test text [\x-z]
test text test text [\u-z]
xx xx a
xx aaaaa xx a
xx aaaaa xx a
xx Aaa xx
xx Aaaa xx
xx Aaa xx
xx foobar xA xx
xx an A xx
XX 9;
YY 77;
xyz
bcd
BB

View File

@ -0,0 +1,9 @@
function Test_Comparators()
try
let oldisident=&isident
set isident+=#
call assert_equal(1, 1 is#1)
finally
let &isident=oldisident
endtry
endfunction

View File

@ -0,0 +1,26 @@
" Test whether glob()/globpath() return correct results with certain escaped
" characters.
function SetUp()
" make sure glob() doesn't use the shell
set shell=doesnotexist
" consistent sorting of file names
set nofileignorecase
endfunction
function Test_glob()
call assert_equal("", glob('Xxx\{'))
call assert_equal("", glob('Xxx\$'))
w! Xxx{
w! Xxx\$
call assert_equal("Xxx{", glob('Xxx\{'))
call assert_equal("Xxx$", glob('Xxx\$'))
endfunction
function Test_globpath()
let slash = (!exists('+shellslash') || &shellslash) ? '/' : '\'
call assert_equal('sautest'.slash.'autoload'.slash.'footest.vim',
\ globpath('sautest/autoload', '*.vim'))
call assert_equal(['sautest'.slash.'autoload'.slash.'footest.vim'],
\ globpath('sautest/autoload', '*.vim', 0, 1))
endfunction

View File

@ -0,0 +1,53 @@
" Test for :execute, :while and :if
function Test_exec_while_if()
new
let i = 0
while i < 12
let i = i + 1
if has("ebcdic")
execute "normal o" . i . "\047"
else
execute "normal o" . i . "\033"
endif
if i % 2
normal Ax
if i == 9
break
endif
if i == 5
continue
else
let j = 9
while j > 0
if has("ebcdic")
execute "normal" j . "a" . j . "\x27"
else
execute "normal" j . "a" . j . "\x1b"
endif
let j = j - 1
endwhile
endif
endif
if i == 9
if has("ebcdic")
execute "normal Az\047"
else
execute "normal Az\033"
endif
endif
endwhile
unlet i j
call assert_equal(["",
\ "1x999999999888888887777777666666555554444333221",
\ "2",
\ "3x999999999888888887777777666666555554444333221",
\ "4",
\ "5x",
\ "6",
\ "7x999999999888888887777777666666555554444333221",
\ "8",
\ "9x"], getline(1, 10))
endfunction

View File

@ -0,0 +1,26 @@
" Test that groups and patterns are tested correctly when calling exists() for
" autocommands.
function Test_AutoCommands()
let results=[]
augroup auexists
augroup END
call assert_true(exists("##BufEnter"))
call assert_false(exists("#BufEnter"))
au BufEnter * let g:entered=1
call assert_true(exists("#BufEnter"))
call assert_false(exists("#auexists#BufEnter"))
augroup auexists
au BufEnter * let g:entered=1
augroup END
call assert_true(exists("#auexists#BufEnter"))
call assert_false(exists("#BufEnter#*.test"))
au BufEnter *.test let g:entered=1
call assert_true(exists("#BufEnter#*.test"))
edit testfile.test
call assert_false(exists("#BufEnter#<buffer>"))
au BufEnter <buffer> let g:entered=1
call assert_true(exists("#BufEnter#<buffer>"))
edit testfile2.test
call assert_false(exists("#BufEnter#<buffer>"))
endfunction

View File

@ -0,0 +1,91 @@
function! GetCwdInfo(win, tab)
let tab_changed = 0
let mod = ":t"
if a:tab > 0 && a:tab != tabpagenr()
let tab_changed = 1
exec "tabnext " . a:tab
endif
let bufname = fnamemodify(bufname(winbufnr(a:win)), mod)
if tab_changed
tabprevious
endif
if a:win == 0 && a:tab == 0
let dirname = fnamemodify(getcwd(), mod)
let lflag = haslocaldir()
elseif a:tab == 0
let dirname = fnamemodify(getcwd(a:win), mod)
let lflag = haslocaldir(a:win)
else
let dirname = fnamemodify(getcwd(a:win, a:tab), mod)
let lflag = haslocaldir(a:win, a:tab)
endif
return bufname . ' ' . dirname . ' ' . lflag
endfunction
" Do all test in a separate window to avoid E211 when we recursively
" delete the Xtopdir directory during cleanup
function SetUp()
set visualbell
set nocp viminfo+=nviminfo
" On windows a swapfile in Xtopdir prevents it from being cleaned up.
set noswapfile
" On windows a stale "Xtopdir" directory may exist, remove it so that
" we start from a clean state.
call delete("Xtopdir", "rf")
new
call mkdir('Xtopdir')
cd Xtopdir
call mkdir('Xdir1')
call mkdir('Xdir2')
call mkdir('Xdir3')
endfunction
let g:cwd=getcwd()
function TearDown()
q
exec "cd " . g:cwd
call delete("Xtopdir", "rf")
endfunction
function Test_GetCwd()
new a
new b
new c
3wincmd w
lcd Xdir1
call assert_equal("a Xdir1 1", GetCwdInfo(0, 0))
wincmd W
call assert_equal("b Xtopdir 0", GetCwdInfo(0, 0))
wincmd W
lcd Xdir3
call assert_equal("c Xdir3 1", GetCwdInfo(0, 0))
call assert_equal("a Xdir1 1", GetCwdInfo(bufwinnr("a"), 0))
call assert_equal("b Xtopdir 0", GetCwdInfo(bufwinnr("b"), 0))
call assert_equal("c Xdir3 1", GetCwdInfo(bufwinnr("c"), 0))
wincmd W
call assert_equal("a Xdir1 1", GetCwdInfo(bufwinnr("a"), tabpagenr()))
call assert_equal("b Xtopdir 0", GetCwdInfo(bufwinnr("b"), tabpagenr()))
call assert_equal("c Xdir3 1", GetCwdInfo(bufwinnr("c"), tabpagenr()))
tabnew x
new y
new z
3wincmd w
call assert_equal("x Xtopdir 0", GetCwdInfo(0, 0))
wincmd W
lcd Xdir2
call assert_equal("y Xdir2 1", GetCwdInfo(0, 0))
wincmd W
lcd Xdir3
call assert_equal("z Xdir3 1", GetCwdInfo(0, 0))
call assert_equal("x Xtopdir 0", GetCwdInfo(bufwinnr("x"), 0))
call assert_equal("y Xdir2 1", GetCwdInfo(bufwinnr("y"), 0))
call assert_equal("z Xdir3 1", GetCwdInfo(bufwinnr("z"), 0))
let tp_nr = tabpagenr()
tabrewind
call assert_equal("x Xtopdir 0", GetCwdInfo(3, tp_nr))
call assert_equal("y Xdir2 1", GetCwdInfo(2, tp_nr))
call assert_equal("z Xdir3 1", GetCwdInfo(1, tp_nr))
endfunc

View File

@ -0,0 +1,52 @@
" Tests for maparg().
" Also test utf8 map with a 0x80 byte.
if !has("multi_byte")
finish
endif
function s:SID()
return str2nr(matchstr(expand('<sfile>'), '<SNR>\zs\d\+\ze_SID$'))
endfun
function Test_maparg()
new
set cpo-=<
set encoding=utf8
" Test maparg() with a string result
map foo<C-V> is<F4>foo
vnoremap <script> <buffer> <expr> <silent> bar isbar
let sid = s:SID()
call assert_equal("is<F4>foo", maparg('foo<C-V>'))
call assert_equal({'silent': 0, 'noremap': 0, 'lhs': 'foo<C-V>',
\ 'mode': ' ', 'nowait': 0, 'expr': 0, 'sid': sid, 'rhs': 'is<F4>foo',
\ 'buffer': 0}, maparg('foo<C-V>', '', 0, 1))
call assert_equal({'silent': 1, 'noremap': 1, 'lhs': 'bar', 'mode': 'v',
\ 'nowait': 0, 'expr': 1, 'sid': sid, 'rhs': 'isbar', 'buffer': 1},
\ maparg('bar', '', 0, 1))
map <buffer> <nowait> foo bar
call assert_equal({'silent': 0, 'noremap': 0, 'lhs': 'foo', 'mode': ' ',
\ 'nowait': 1, 'expr': 0, 'sid': sid, 'rhs': 'bar', 'buffer': 1},
\ maparg('foo', '', 0, 1))
map abc x<char-114>x
call assert_equal(maparg('abc'), "xrx")
map abc y<S-char-114>y
call assert_equal(maparg('abc'), "yRy")
endfunction
function Test_range_map()
new
" Outside of the range, minimum
inoremap <Char-0x1040> a
execute "normal a\u1040\<Esc>"
" Inside of the range, minimum
inoremap <Char-0x103f> b
execute "normal a\u103f\<Esc>"
" Inside of the range, maximum
inoremap <Char-0xf03f> c
execute "normal a\uf03f\<Esc>"
" Outside of the range, maximum
inoremap <Char-0xf040> d
execute "normal a\uf040\<Esc>"
call assert_equal("abcd", getline(1))
endfunction

View File

@ -0,0 +1,8 @@
" Tests for complicated + argument to :edit command
function Test_edit()
call writefile(["foo|bar"], "Xfile1")
call writefile(["foo/bar"], "Xfile2")
edit +1|s/|/PIPE/|w Xfile1| e Xfile2|1 | s/\//SLASH/|w
call assert_equal(["fooPIPEbar"], readfile("Xfile1"))
call assert_equal(["fooSLASHbar"], readfile("Xfile2"))
endfunction

View File

@ -0,0 +1,58 @@
" Tests for regexp with backslash and other special characters inside []
" Also test backslash for hex/octal numbered character.
function RunSTest(value, calls, expected)
new
call feedkeys("i" . a:value, "mx")
exec a:calls
call assert_equal(a:expected, getline(1), printf("wrong result for %s", a:calls))
quit!
endfunction
function RunXTest(value, search_exp, expected)
new
call feedkeys("i" . a:value, "mx")
call feedkeys("gg" . a:search_exp . "\nx", "mx")
call assert_equal(a:expected, getline(1), printf("wrong result for %s", a:search_exp))
quit!
endfunction
function Test_x_search()
let res = "test text test text"
call RunXTest("test \\text test text", "/[\\x]", res)
call RunXTest("test \ttext test text", "/[\\t\\]]", res)
call RunXTest("test text ]test text", "/[]y]", res)
call RunXTest("test ]text test text", "/[\\]]", res)
call RunXTest("test text te^st text", "/[y^]", res)
call RunXTest("test te$xt test text", "/[$y]", res)
call RunXTest("test taext test text", "/[\\x61]", res)
call RunXTest("test tbext test text","/[\\x60-\\x64]", res)
call RunXTest("test 5text test text","/[\\x785]", res)
call RunXTest("testc text test text","/[\\o143]", res)
call RunXTest("tesdt text test text","/[\\o140-\\o144]", res)
call RunXTest("test7 text test text", "/[\\o417]", res)
call RunXTest("test text tBest text", "/\\%x42", res)
call RunXTest("test text teCst text", "/\\%o103", res)
call RunXTest("test text \<C-V>x00test text", "/[\\x00]", res)
endfunction
function Test_s_search()
let res = "test text test text"
call RunSTest("test te\<C-V>x00xt t\<C-V>x04est t\<C-V>x10ext", "s/[\\x00-\\x10]//g", res)
call RunSTest("test \\xyztext test text", "s/[\\x-z]\\+//", res)
call RunSTest("test text tev\\uyst text", "s/[\\u-z]\\{2,}//", res)
call RunSTest("xx aaaaa xx a", "s/\\(a\\)\\+//", "xx xx a")
call RunSTest("xx aaaaa xx a", "s/\\(a*\\)\\+//", "xx aaaaa xx a")
call RunSTest("xx aaaaa xx a", "s/\\(a*\\)*//", "xx aaaaa xx a")
call RunSTest("xx aaaaa xx", "s/\\(a\\)\\{2,3}/A/", "xx Aaa xx")
call RunSTest("xx aaaaa xx", "s/\\(a\\)\\{-2,3}/A/", "xx Aaaa xx")
call RunSTest("xx aaa12aa xx", "s/\\(a\\)*\\(12\\)\\@>/A/", "xx Aaa xx")
call RunSTest("xx foobar xbar xx", "s/\\(foo\\)\\@<!bar/A/", "xx foobar xA xx")
call RunSTest("xx an file xx", "s/\\(an\\_s\\+\\)\\@<=file/A/", "xx an A xx")
call RunSTest("x= 9;", "s/^\\(\\h\\w*\\%(->\\|\\.\\)\\=\\)\\+=/XX/", "XX 9;")
call RunSTest("hh= 77;", "s/^\\(\\h\\w*\\%(->\\|\\.\\)\\=\\)\\+=/YY/", "YY 77;")
call RunSTest(" aaa ", "s/aaa/xyz/", " xyz ")
call RunSTest(" xyz", "s/~/bcd/", " bcd")
call RunSTest(" bcdbcdbcd", "s/~\\+/BB/", " BB")
endfunction