# HG changeset patch # User Christian Brabandt # Date 1470688206 -7200 # Node ID 74990ddf081305ad09dc6f5cef6a7d1197e4a2ea # Parent 84d7ba2b2b1695e7aff4ea781e87d39dc084f509 commit https://github.com/vim/vim/commit/09de17536dd84e43aed7a575183e320e8d980b68 Author: Bram Moolenaar Date: Mon Aug 8 22:26:48 2016 +0200 patch 7.4.2183 Problem: Sign tests are old style. Solution: Turn them into new style tests. (Dominique Pelle) diff --git a/src/Makefile b/src/Makefile --- a/src/Makefile +++ b/src/Makefile @@ -2032,7 +2032,6 @@ test1 \ test_marks \ test_nested_function \ test_search_mbyte \ - test_signs \ test_tagcase \ test_utf8 \ test_wordcount \ @@ -2110,10 +2109,11 @@ test_arglist \ test_regexp_utf8 \ test_reltime \ test_ruby \ - test_startup \ test_searchpos \ test_set \ + test_signs \ test_sort \ + test_startup \ test_stat \ test_statusline \ test_syn_attr \ diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak --- a/src/testdir/Make_all.mak +++ b/src/testdir/Make_all.mak @@ -102,7 +102,6 @@ SCRIPTS_ALL = \ test_marks.out \ test_nested_function.out \ test_search_mbyte.out \ - test_signs.out \ test_tagcase.out \ test_utf8.out \ test_wordcount.out \ @@ -184,6 +183,7 @@ NEW_TESTS = test_arglist.res \ test_perl.res \ test_quickfix.res \ test_ruby.res \ + test_signs.res \ test_startup.res \ test_stat.res \ test_syntax.res \ diff --git a/src/testdir/test_signs.in b/src/testdir/test_signs.in deleted file mode 100644 --- a/src/testdir/test_signs.in +++ /dev/null @@ -1,22 +0,0 @@ -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 - diff --git a/src/testdir/test_signs.ok b/src/testdir/test_signs.ok deleted file mode 100644 --- a/src/testdir/test_signs.ok +++ /dev/null @@ -1,2 +0,0 @@ - -2 diff --git a/src/testdir/test_signs.vim b/src/testdir/test_signs.vim new file mode 100644 --- /dev/null +++ b/src/testdir/test_signs.vim @@ -0,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 diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -764,6 +764,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2183, +/**/ 2182, /**/ 2181,