changeset 9642:8cc4dfadfd48 v7.4.2098

commit https://github.com/vim/vim/commit/00b24be454800f544676aa8850fb4378a568901e Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jul 23 22:04:47 2016 +0200 patch 7.4.2098 Problem: Text object tests are old style. Solution: Turn them into new style tests. (James McCoy, closes https://github.com/vim/vim/issues/941)
author Christian Brabandt <cb@256bit.org>
date Sat, 23 Jul 2016 22:15:05 +0200
parents 5c80d18b914a
children 5aee77e6b395
files src/Makefile src/testdir/Make_all.mak src/testdir/test_textobjects.in src/testdir/test_textobjects.ok src/testdir/test_textobjects.vim src/version.c
diffstat 6 files changed, 50 insertions(+), 58 deletions(-) [+]
line wrap: on
line diff
--- a/src/Makefile
+++ b/src/Makefile
@@ -368,6 +368,9 @@ CClink = $(CC)
 # Carbon GUI for Mac OS X
 #CONF_OPT_GUI = --enable-gui=carbon
 
+# Uncomment this line to run an indivisual test with gvim.
+#GUI_TESTARG = GUI_FLAG=-g 
+
 # DARWIN - detecting Mac OS X
 # Uncomment this line when you want to compile a Unix version of Vim on
 # Darwin.  None of the Mac specific options or files will be used.
@@ -2031,7 +2034,6 @@ test1 \
 	test_search_mbyte \
 	test_signs \
 	test_tagcase \
-	test_textobjects \
 	test_utf8 \
 	test_wordcount \
 	test_writefile \
@@ -2112,6 +2114,7 @@ test_arglist \
 	test_syntax \
 	test_tabline \
 	test_tagjump \
+	test_textobjects \
 	test_timers \
 	test_true_false \
 	test_undolevels \
--- a/src/testdir/Make_all.mak
+++ b/src/testdir/Make_all.mak
@@ -108,7 +108,6 @@ SCRIPTS_ALL = \
 	test_search_mbyte.out \
 	test_signs.out \
 	test_tagcase.out \
-	test_textobjects.out \
 	test_utf8.out \
 	test_wordcount.out \
 	test_writefile.out
@@ -187,6 +186,7 @@ NEW_TESTS = test_arglist.res \
 	    test_ruby.res \
 	    test_stat.res \
 	    test_syntax.res \
+	    test_textobjects.res \
 	    test_usercommands.res \
 	    test_viminfo.res \
 	    test_viml.res \
deleted file mode 100644
--- a/src/testdir/test_textobjects.in
+++ /dev/null
@@ -1,40 +0,0 @@
-Tests for text-objects     vim: set ft=vim :
-
-STARTTEST
-:so small.vim
-:if !has('textobjects') | e! test.ok | wq! test.out | endif
-:set nocp viminfo+=nviminfo
-:"
-:function SelectionOut(data)
-:  new
-:  call setline(1, a:data)
-:  call setreg('"', '')
-:  normal! ggfrmavi)y
-:  $put =getreg('\"')
-:  call setreg('"', '')
-:  normal! `afbmavi)y
-:  $put =getreg('\"')
-:  call setreg('"', '')
-:  normal! `afgmavi)y
-:  $put =getreg('\"')
-:  %yank a
-:  q!
-:  $put =getreg('a')
-:endfunction
-:"
-:$put ='# Test for vi) without cpo-M'
-:set cpo-=M
-:call SelectionOut('(red \(blue) green)')
-:"
-:$put ='# Test for vi) with cpo-M #1'
-:set cpo+=M
-:call SelectionOut('(red \(blue) green)')
-:"
-:$put ='# Test for vi) with cpo-M #2'
-:set cpo+=M
-:call SelectionOut('(red (blue\) green)')
-:/^Results/,$w test.out
-:qa!
-ENDTEST
-
-Results of text-objects
deleted file mode 100644
--- a/src/testdir/test_textobjects.ok
+++ /dev/null
@@ -1,16 +0,0 @@
-Results of text-objects
-# Test for vi) without cpo-M
-(red \(blue) green)
-red \(blue
-red \(blue
-
-# Test for vi) with cpo-M #1
-(red \(blue) green)
-red \(blue) green
-blue
-red \(blue) green
-# Test for vi) with cpo-M #2
-(red (blue\) green)
-red (blue\) green
-blue\
-red (blue\) green
new file mode 100644
--- /dev/null
+++ b/src/testdir/test_textobjects.vim
@@ -0,0 +1,43 @@
+" Test for textobjects
+
+if !has('textobjects')
+  finish
+endif
+
+function! CpoM(line, useM, expected)
+  new
+
+  if a:useM
+    set cpoptions+=M
+  else
+    set cpoptions-=M
+  endif
+
+  call setline(1, a:line)
+
+  call setreg('"', '')
+  normal! ggfrmavi)y
+  call assert_equal(getreg('"'), a:expected[0])
+
+  call setreg('"', '')
+  normal! `afbmavi)y
+  call assert_equal(getreg('"'), a:expected[1])
+
+  call setreg('"', '')
+  normal! `afgmavi)y
+  call assert_equal(getreg('"'), a:expected[2])
+
+  q!
+endfunction
+
+function! Test_inner_block_without_cpo_M()
+  call CpoM('(red \(blue) green)', 0, ['red \(blue', 'red \(blue', ''])
+endfunction
+
+function! Test_inner_block_with_cpo_M_left_backslash()
+  call CpoM('(red \(blue) green)', 1, ['red \(blue) green', 'blue', 'red \(blue) green'])
+endfunction
+
+function! Test_inner_block_with_cpo_M_right_backslash()
+  call CpoM('(red (blue\) green)', 1, ['red (blue\) green', 'blue\', 'red (blue\) green'])
+endfunction
--- a/src/version.c
+++ b/src/version.c
@@ -759,6 +759,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2098,
+/**/
     2097,
 /**/
     2096,