To: vim_dev@googlegroups.com Subject: Patch 7.4.2183 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 7.4.2183 Problem: Sign tests are old style. Solution: Turn them into new style tests. (Dominique Pelle) Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/test_signs.in, src/testdir/test_signs.ok, src/testdir/test_signs.vim, *** ../vim-7.4.2182/src/Makefile 2016-08-07 13:48:04.997106444 +0200 --- src/Makefile 2016-08-08 22:14:42.367292767 +0200 *************** *** 2032,2038 **** test_marks \ test_nested_function \ test_search_mbyte \ - test_signs \ test_tagcase \ test_utf8 \ test_wordcount \ --- 2032,2037 ---- *************** *** 2110,2119 **** test_regexp_utf8 \ test_reltime \ test_ruby \ - test_startup \ test_searchpos \ test_set \ test_sort \ test_stat \ test_statusline \ test_syn_attr \ --- 2109,2119 ---- test_regexp_utf8 \ test_reltime \ test_ruby \ test_searchpos \ test_set \ + test_signs \ test_sort \ + test_startup \ test_stat \ test_statusline \ test_syn_attr \ *** ../vim-7.4.2182/src/testdir/Make_all.mak 2016-08-07 13:48:05.001106411 +0200 --- src/testdir/Make_all.mak 2016-08-08 22:13:16.211937925 +0200 *************** *** 102,108 **** test_marks.out \ test_nested_function.out \ test_search_mbyte.out \ - test_signs.out \ test_tagcase.out \ test_utf8.out \ test_wordcount.out \ --- 102,107 ---- *************** *** 184,189 **** --- 183,189 ---- test_perl.res \ test_quickfix.res \ test_ruby.res \ + test_signs.res \ test_startup.res \ test_stat.res \ test_syntax.res \ *** ../vim-7.4.2182/src/testdir/test_signs.in 2014-10-21 20:57:11.538295006 +0200 --- src/testdir/test_signs.in 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,22 **** - Tests for signs - STARTTEST - :so small.vim - :if !has("signs") - : e! test.ok - : wq! test.out - :endif - :" - :sign define JumpSign text=x - :exe 'sign place 42 line=2 name=JumpSign buffer=' . bufnr('') - :" Split the window to the bottom to verify :sign-jump will stay in the current - :" window if the buffer is displayed there - :bot split - :exe 'sign jump 42 buffer=' . bufnr('') - :call append(line('$'), winnr()) - :$-1,$w! test.out - ENDTEST - - STARTTEST - :qa! - ENDTEST - --- 0 ---- *** ../vim-7.4.2182/src/testdir/test_signs.ok 2014-10-21 20:57:11.538295006 +0200 --- src/testdir/test_signs.ok 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,2 **** - - 2 --- 0 ---- *** ../vim-7.4.2182/src/testdir/test_signs.vim 2016-08-08 22:25:55.058248340 +0200 --- src/testdir/test_signs.vim 2016-08-08 22:13:16.211937925 +0200 *************** *** 0 **** --- 1,106 ---- + " Test for signs + + if !has('signs') + finish + endif + + func Test_sign() + new + call setline(1, ['a', 'b', 'c', 'd']) + + sign define Sign1 text=x + sign define Sign2 text=y + + " Test listing signs. + let a=execute('sign list') + call assert_equal("\nsign Sign1 text=x \nsign Sign2 text=y ", a) + + let a=execute('sign list Sign1') + call assert_equal("\nsign Sign1 text=x ", a) + + " Place the sign at line 3,then check that we can jump to it. + exe 'sign place 42 line=3 name=Sign1 buffer=' . bufnr('') + 1 + exe 'sign jump 42 buffer=' . bufnr('') + call assert_equal('c', getline('.')) + + " Can't change sign. + call assert_fails("exe 'sign place 43 name=Sign1 buffer=' . bufnr('')", 'E885:') + + let a=execute('sign place') + call assert_equal("\n--- Signs ---\nSigns for [NULL]:\n line=3 id=42 name=Sign1\n", a) + + " Unplace the sign and try jumping to it again should now fail. + sign unplace 42 + 1 + call assert_fails("exe 'sign jump 42 buffer=' . bufnr('')", 'E157:') + call assert_equal('a', getline('.')) + + " Unplace sign on current line. + exe 'sign place 43 line=4 name=Sign2 buffer=' . bufnr('') + 4 + sign unplace + let a=execute('sign place') + call assert_equal("\n--- Signs ---\n", a) + + " Try again to unplace sign on current line, it should fail this time. + call assert_fails('sign unplace', 'E159:') + + " Unplace all signs. + exe 'sign place 42 line=3 name=Sign1 buffer=' . bufnr('') + sign unplace * + let a=execute('sign place') + call assert_equal("\n--- Signs ---\n", a) + + " After undefining the sign, we should no longer be able to place it. + sign undefine Sign1 + sign undefine Sign2 + call assert_fails("exe 'sign place 42 line=3 name=Sign1 buffer=' . bufnr('')", 'E155:') + + endfunc + + func Test_sign_completion() + sign define Sign1 text=x + sign define Sign2 text=y + + call feedkeys(":sign \\\"\", 'tx') + call assert_equal('"sign define jump list place undefine unplace', @:) + + call feedkeys(":sign define Sign \\\"\", 'tx') + call assert_equal('"sign define Sign icon= linehl= text= texthl=', @:) + + call feedkeys(":sign define Sign linehl=Spell\\\"\", 'tx') + call assert_equal('"sign define Sign linehl=SpellBad SpellCap SpellLocal SpellRare', @:) + + call feedkeys(":sign undefine \\\"\", 'tx') + call assert_equal('"sign undefine Sign1 Sign2', @:) + + call feedkeys(":sign place 1 \\\"\", 'tx') + call assert_equal('"sign place 1 buffer= file= line= name=', @:) + + call feedkeys(":sign place 1 name=\\\"\", 'tx') + call assert_equal('"sign place 1 name=Sign1 Sign2', @:) + + call feedkeys(":sign unplace 1 \\\"\", 'tx') + call assert_equal('"sign unplace 1 buffer= file=', @:) + + call feedkeys(":sign list \\\"\", 'tx') + call assert_equal('"sign list Sign1 Sign2', @:) + + call feedkeys(":sign jump 1 \\\"\", 'tx') + call assert_equal('"sign jump 1 buffer= file=', @:) + + sign undefine Sign1 + sign undefine Sign2 + + endfunc + + func Test_sign_invalid_commands() + call assert_fails('sign', 'E471:') + call assert_fails('sign xxx', 'E160:') + call assert_fails('sign define', 'E156:') + call assert_fails('sign undefine', 'E156:') + call assert_fails('sign list xxx', 'E155:') + call assert_fails('sign place 1 buffer=', 'E158:') + call assert_fails('sign define Sign2 text=', 'E239:') + endfunc *** ../vim-7.4.2182/src/version.c 2016-08-08 20:43:23.112463089 +0200 --- src/version.c 2016-08-08 22:15:01.519149370 +0200 *************** *** 765,766 **** --- 765,768 ---- { /* Add new patch number below this line */ + /**/ + 2183, /**/ -- The budget process was invented by an alien race of sadistic beings who resemble large cats. (Scott Adams - The Dilbert principle) /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///