From ec4c12570caa10a97c8a11e2fd1892fcb6068387 Mon Sep 17 00:00:00 2001 From: lonerover Date: Mon, 13 Mar 2017 20:07:36 +0800 Subject: vim-patch:7.4.2208 Problem: Test for mappings is old style. Solution: Convert the test to new style. https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817 --- src/nvim/testdir/test_alot.vim | 1 + src/nvim/testdir/test_mapping.vim | 100 ++++++++++++++++++++++++++++++++++++++ src/nvim/version.c | 2 +- 3 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 src/nvim/testdir/test_mapping.vim (limited to 'src') diff --git a/src/nvim/testdir/test_alot.vim b/src/nvim/testdir/test_alot.vim index 3da9b82a9f..ecf595da04 100644 --- a/src/nvim/testdir/test_alot.vim +++ b/src/nvim/testdir/test_alot.vim @@ -16,6 +16,7 @@ source test_lambda.vim source test_match.vim source test_matchadd_conceal_utf8.vim source test_menu.vim +source test_mapping.vim source test_messages.vim source test_options.vim source test_partial.vim diff --git a/src/nvim/testdir/test_mapping.vim b/src/nvim/testdir/test_mapping.vim new file mode 100644 index 0000000000..d937565ce5 --- /dev/null +++ b/src/nvim/testdir/test_mapping.vim @@ -0,0 +1,100 @@ +" Tests for mappings and abbreviations + +if !has('multi_byte') + finish +endif + +func Test_abbreviation() + " abbreviation with 0x80 should work + inoreab чкпр vim + call feedkeys("Goчкпр \", "xt") + call assert_equal('vim ', getline('$')) + iunab чкпр + set nomodified +endfunc + +func Test_map_ctrl_c_insert() + " mapping of ctrl-c in Insert mode + set cpo-=< cpo-=k + inoremap + cnoremap dummy + cunmap + call feedkeys("GoTEST2: CTRL-C |\A|\", "xt") + call assert_equal('TEST2: CTRL-C |A|', getline('$')) + unmap! + set nomodified +endfunc + +func Test_map_ctrl_c_visual() + " mapping of ctrl-c in Visual mode + vnoremap :$put ='vmap works' + call feedkeys("GV\\", "xt") + call assert_equal('vmap works', getline('$')) + vunmap + set nomodified +endfunc + +func Test_map_langmap() + " langmap should not get remapped in insert mode + inoremap { FAIL_ilangmap + set langmap=+{ langnoremap + call feedkeys("Go+\", "xt") + call assert_equal('+', getline('$')) + + " Insert-mode expr mapping with langmap + inoremap { "FAIL_iexplangmap" + call feedkeys("Go+\", "xt") + call assert_equal('+', getline('$')) + iunmap { + + " langmap should not get remapped in Command-line mode + cnoremap { FAIL_clangmap + call feedkeys(":call append(line('$'), '+')\", "xt") + call assert_equal('+', getline('$')) + cunmap { + + " Command-line mode expr mapping with langmap + cnoremap { "FAIL_cexplangmap" + call feedkeys(":call append(line('$'), '+')\", "xt") + call assert_equal('+', getline('$')) + cunmap { + set nomodified +endfunc + +func Test_map_feedkeys() + " issue #212 (feedkeys insert mapping at current position) + nnoremap . :call feedkeys(".", "in") + call setline('$', ['a b c d', 'a b c d']) + $-1 + call feedkeys("0qqdw.ifoo\qj0@q\", "xt") + call assert_equal(['fooc d', 'fooc d'], getline(line('$') - 1, line('$'))) + unmap . + set nomodified +endfunc + +func Test_map_cursor() + " U works only within a single line + imapclear + imap ( ()U + call feedkeys("G2o\ki\Test1: text with a (here some more text\k.", "xt") + call assert_equal('Test1: text with a (here some more text)', getline(line('$') - 2)) + call assert_equal('Test1: text with a (here some more text)', getline(line('$') - 1)) + + " test undo + call feedkeys("G2o\ki\Test2: text wit a (here some more text [und undo]\u\k.u", "xt") + call assert_equal('', getline(line('$') - 2)) + call assert_equal('Test2: text wit a (here some more text [und undo])', getline(line('$') - 1)) + set nomodified + imapclear +endfunc + +" This isn't actually testing a mapping, but similar use of CTRL-G U as above. +func Test_break_undo() + :set whichwrap=<,>,[,] + call feedkeys("G4o2k", "xt") + exe ":norm! iTest3: text with a (parenthesis here\U\new line here\\\." + call assert_equal('new line here', getline(line('$') - 3)) + call assert_equal('Test3: text with a (parenthesis here', getline(line('$') - 2)) + call assert_equal('new line here', getline(line('$') - 1)) + set nomodified +endfunc diff --git a/src/nvim/version.c b/src/nvim/version.c index cc1483cc70..d2a2457dd4 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -232,7 +232,7 @@ static int included_patches[] = { // 2211 NA // 2210 NA // 2209, - // 2208, + 2208, // 2207 NA // 2206 NA 2205, -- cgit From 76829898bdcbf7f19ea2c6099c45c414510c6a38 Mon Sep 17 00:00:00 2001 From: lonerover Date: Mon, 13 Mar 2017 20:16:40 +0800 Subject: vim-patch:7.4.2305 Problem: Marks, writefile and nested function tests are old style. Solution: Turn them into new style tests. (Yegappan Lakshmanan) https://github.com/vim/vim/commit/19a1669ffc796e30a83c5600f82f12ebf63a2261 --- src/nvim/testdir/Makefile | 4 +++- src/nvim/testdir/test_marks.vim | 26 +++++++++++++++++++++++++ src/nvim/testdir/test_nested_function.vim | 32 +++++++++++++++++++++++++++++++ src/nvim/testdir/test_writefile.vim | 16 ++++++++++++++++ src/nvim/version.c | 2 +- 5 files changed, 78 insertions(+), 2 deletions(-) create mode 100644 src/nvim/testdir/test_marks.vim create mode 100644 src/nvim/testdir/test_nested_function.vim create mode 100644 src/nvim/testdir/test_writefile.vim (limited to 'src') diff --git a/src/nvim/testdir/Makefile b/src/nvim/testdir/Makefile index 740a10f153..9f9ecbc6c9 100644 --- a/src/nvim/testdir/Makefile +++ b/src/nvim/testdir/Makefile @@ -24,7 +24,6 @@ SCRIPTS ?= \ test64.out \ test73.out \ test79.out \ - test_marks.out \ # Tests using runtest.vim. # Keep test_alot*.res as the last one, sort the others. @@ -44,8 +43,10 @@ NEW_TESTS ?= \ test_increment_dbcs.res \ test_lambda.res \ test_langmap.res \ + test_marks.res \ test_match.res \ test_matchadd_conceal.res \ + test_nested_function.res \ test_quickfix.res \ test_signs.res \ test_syntax.res \ @@ -55,6 +56,7 @@ NEW_TESTS ?= \ test_viml.res \ test_visual.res \ test_window_id.res \ + test_writefile.res \ test_alot.res SCRIPTS_GUI := test16.out diff --git a/src/nvim/testdir/test_marks.vim b/src/nvim/testdir/test_marks.vim new file mode 100644 index 0000000000..d00b1ddc88 --- /dev/null +++ b/src/nvim/testdir/test_marks.vim @@ -0,0 +1,26 @@ + +" Test that a deleted mark is restored after delete-undo-redo-undo. +function! Test_Restore_DelMark() + enew! + call append(0, [" textline A", " textline B", " textline C"]) + normal! 2gg + set nocp viminfo+=nviminfo + exe "normal! i\u\" + exe "normal! maddu\u" + let pos = getpos("'a") + call assert_equal(2, pos[1]) + call assert_equal(1, pos[2]) + enew! +endfunction + +" Test that CTRL-A and CTRL-X updates last changed mark '[, ']. +function! Test_Incr_Marks() + enew! + call append(0, ["123 123 123", "123 123 123", "123 123 123"]) + normal! gg + execute "normal! \`[v`]rAjwvjw\`[v`]rX" + call assert_equal("AAA 123 123", getline(1)) + call assert_equal("123 XXXXXXX", getline(2)) + call assert_equal("XXX 123 123", getline(3)) + enew! +endfunction diff --git a/src/nvim/testdir/test_nested_function.vim b/src/nvim/testdir/test_nested_function.vim new file mode 100644 index 0000000000..f881730529 --- /dev/null +++ b/src/nvim/testdir/test_nested_function.vim @@ -0,0 +1,32 @@ +"Tests for nested functions +" +function! NestedFunc() + fu! Func1() + let g:text .= 'Func1 ' + endfunction + call Func1() + fu! s:func2() + let g:text .= 's:func2 ' + endfunction + call s:func2() + fu! s:_func3() + let g:text .= 's:_func3 ' + endfunction + call s:_func3() + let fn = 'Func4' + fu! {fn}() + let g:text .= 'Func4 ' + endfunction + call {fn}() + let fn = 'func5' + fu! s:{fn}() + let g:text .= 's:func5' + endfunction + call s:{fn}() +endfunction + +function! Test_nested_functions() + let g:text = '' + call NestedFunc() + call assert_equal('Func1 s:func2 s:_func3 Func4 s:func5', g:text) +endfunction diff --git a/src/nvim/testdir/test_writefile.vim b/src/nvim/testdir/test_writefile.vim new file mode 100644 index 0000000000..d820c580ac --- /dev/null +++ b/src/nvim/testdir/test_writefile.vim @@ -0,0 +1,16 @@ + +function! Test_WriteFile() + let f = tempname() + call writefile(["over","written"], f, "b") + call writefile(["hello","world"], f, "b") + call writefile(["!", "good"], f, "a") + call writefile(["morning"], f, "ab") + call writefile(["", "vimmers"], f, "ab") + let l = readfile(f) + call assert_equal("hello", l[0]) + call assert_equal("world!", l[1]) + call assert_equal("good", l[2]) + call assert_equal("morning", l[3]) + call assert_equal("vimmers", l[4]) + call delete(f) +endfunction diff --git a/src/nvim/version.c b/src/nvim/version.c index d2a2457dd4..e3da66af05 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -135,7 +135,7 @@ static int included_patches[] = { // 2308 NA // 2307, // 2306, - // 2305, + 2305, // 2304 NA // 2303, // 2302 NA -- cgit