changeset 7279:b5e9810b389d v7.4.945

commit https://github.com/vim/vim/commit/683fa185a4b4ed7595e5942901548b8239ed5cdb Author: Bram Moolenaar <Bram@vim.org> Date: Mon Nov 30 21:38:24 2015 +0100 patch 7.4.945 Problem: New style testing is incomplete. Solution: Add the runtest script to the list of distributed files. Add the new functions to the function overview. Rename the functions to match Vim function style. Move undolevels testing into a new style test script.
author Christian Brabandt <cb@256bit.org>
date Mon, 30 Nov 2015 21:45:04 +0100
parents cbb385c32701
children e3c187893666
files Filelist runtime/doc/eval.txt runtime/doc/usr_41.txt src/testdir/Makefile src/testdir/test100.in src/testdir/test100.ok src/testdir/test_assert.vim src/testdir/test_undolevels.vim src/version.c
diffstat 9 files changed, 88 insertions(+), 105 deletions(-) [+]
line wrap: on
line diff
--- a/Filelist
+++ b/Filelist
@@ -87,6 +87,7 @@ SRC_ALL =	\
 		src/testdir/README.txt \
 		src/testdir/*.in \
 		src/testdir/sautest/autoload/*.vim \
+		src/testdir/runtest.vim \
 		src/testdir/test[0-9]*.ok \
 		src/testdir/test[0-9]*a.ok \
 		src/testdir/test_[a-z]*.ok \
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 7.4.  Last change: 2015 Nov 29
+*eval.txt*	For Vim version 7.4.  Last change: 2015 Nov 30
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1380,7 +1380,7 @@ v:errmsg	Last given error message.  It's
 <		"errmsg" also works, for backwards compatibility.
 
 					*v:errors* *errors-variable*
-v:errors	Errors found by assert functions, such as |assertTrue()|.
+v:errors	Errors found by assert functions, such as |assert_true()|.
 		This is a list of strings.
 		The assert functions append an item when an assert fails.
 		To remove old results make it empty: >
@@ -1742,13 +1742,13 @@ append( {lnum}, {string})	Number	append 
 append( {lnum}, {list})		Number	append lines {list} below line {lnum}
 argc()				Number	number of files in the argument list
 argidx()			Number	current index in the argument list
-arglistid( [{winnr}, [ {tabnr}]])
+arglistid( [{winnr} [, {tabnr}]])
 				Number	argument list id
 argv( {nr})			String	{nr} entry of the argument list
 argv( )				List	the argument list
-assertEqual( {exp}, {act})  	none    assert that {exp} equals {act}
-assertFalse( {actual})		none    assert that {actual} is false
-assertTrue( {actual})		none    assert that {actual} is true
+assert_equal( {exp}, {act} [, {msg}]) none    assert that {exp} equals {act}
+assert_false( {actual} [, {msg}])     none    assert that {actual} is false
+assert_true( {actual} [, {msg}])      none    assert that {actual} is true
 asin( {expr})			Float	arc sine of {expr}
 atan( {expr})			Float	arc tangent of {expr}
 atan2( {expr}, {expr})		Float   arc tangent of {expr1} / {expr2}
@@ -2166,30 +2166,36 @@ argv([{nr}])	The result is the {nr}th fi
 <		Without the {nr} argument a |List| with the whole |arglist| is
 		returned.
 
-							*assertEqual()*
-assertEqual({expected}, {actual})
+							*assert_equal()*
+assert_equal({expected}, {actual}, [, {msg}])
 		When {expected} and {actual} are not equal an error message is
 		added to |v:errors|.
 		There is no automatic conversion, the String "4" is different
 		from the Number 4.  And the number 4 is different from the
 		Float 4.0.  The value of 'ignorecase' is not used here, case
 		always matters.
+		When {msg} is omitted an error in the form "Expected
+		{expected} but got {actual}" is produced.
 		Example: >
-	assertEqual('foo', 'bar')
+	assert_equal('foo', 'bar')
 <		Will result in a string to be added to |v:errors|:
 	test.vim line 12: Expected 'foo' but got 'bar' ~
 
-assertFalse({actual})					*assertFalse()*
+assert_false({actual}, [, {msg}])				*assert_false()*
 		When {actual} is not false an error message is added to
-		|v:errors|, like with |assertEqual()|..
+		|v:errors|, like with |assert_equal()|..
 		A value is false when it is zero. When "{actual}" is not a
 		number the assert fails.
-
-assertTrue({actual})					*assertTrue()*
+		When {msg} is omitted an error in the form "Expected False but
+		got {actual}" is produced.
+
+assert_true({actual}, [, {msg}])				*assert_true()*
 		When {actual} is not true an error message is added to
-		|v:errors|, like with |assertEqual()|..
+		|v:errors|, like with |assert_equal()|..
 		A value is true when it is a non-zeron number.  When {actual}
 		is not a number the assert fails.
+		When {msg} is omitted an error in the form "Expected True but
+		got {actual}" is produced.
 
 asin({expr})						*asin()*
 		Return the arc sine of {expr} measured in radians, as a |Float|
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt*	For Vim version 7.4.  Last change: 2014 Aug 16
+*usr_41.txt*	For Vim version 7.4.  Last change: 2015 Nov 30
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -888,6 +888,11 @@ Mappings:				    *mapping-functions*
 	maparg()		get rhs of a mapping
 	wildmenumode()		check if the wildmode is active
 
+Testing:				    *test-functions*
+	assert_equal()       	assert that two expressions values are equal
+	assert_false()		assert that an expression is false
+	assert_true()		assert that an expression is true
+
 Various:					*various-functions*
 	mode()			get current editing mode
 	visualmode()		last visual mode used
--- a/src/testdir/Makefile
+++ b/src/testdir/Makefile
@@ -68,7 +68,8 @@ SCRIPTS = test1.out test2.out test3.out 
 		test_utf8.out \
 		test_writefile.out
 
-NEW_TESTS = test_assert.res
+NEW_TESTS = test_assert.res \
+	    test_undolevels.res
 
 SCRIPTS_GUI = test16.out
 
--- a/src/testdir/test100.in
+++ b/src/testdir/test100.in
@@ -1,45 +1,8 @@
-Tests for 'undolevel' and 'lispwords' settings being global-local
+Tests for 'lispwords' settings being global-local
 
 STARTTEST
 :so small.vim
-:set nocompatible viminfo+=nviminfo ul=5
-:fu! FillBuffer()
-  :for i in range(1,13)
-    :put=i
-    :exe "setg ul=" . &g:ul
-  :endfor
-:endfu
-:fu! UndoLevel()
-  :redir @a | setglobal undolevels? | echon ' global' | setlocal undolevels? | echon ' local' |redir end
-  :$put a
-:endfu
-:new one
-:0put ='ONE: expecting global undolevels: 5, local undolevels: -123456 (default)'
-:call FillBuffer()
-:earlier 10
-:call UndoLevel()
-:set ff=unix
-:%w! test.out
-:new two
-:0put ='TWO: expecting global undolevels: 5, local undolevels: 2 (first) then 10 (afterwards)'
-:setlocal ul=2
-:call FillBuffer()
-:earlier 10
-:call UndoLevel()
-:setlocal ul=10
-:call UndoLevel()
-:set ff=unix
-:%w >> test.out
-:wincmd p
-:redir >>test.out | echo "global value shouldn't be changed and still be 5!" | echo 'ONE: expecting global undolevels: 5, local undolevels: -123456 (default)'|:setglobal undolevels? | echon ' global' | setlocal undolevels? | echon ' local' |echo "" |redir end
-:new three
-:setglobal ul=50
-:1put ='global value should be changed to 50'
-:2put ='THREE: expecting global undolevels: 50, local undolevels: -123456 (default)'
-:call UndoLevel()
-:set ff=unix
-:%w >> test.out
-:"sleep 10
+:set nocompatible viminfo+=nviminfo
 :"
 :" Testing 'lispwords'
 :"
--- a/src/testdir/test100.ok
+++ b/src/testdir/test100.ok
@@ -1,44 +1,3 @@
-ONE: expecting global undolevels: 5, local undolevels: -123456 (default)
-1
-2
-3
-4
-5
-6
-7
-
-
-  undolevels=5 global
-  undolevels=-123456 local
-TWO: expecting global undolevels: 5, local undolevels: 2 (first) then 10 (afterwards)
-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-
-
-  undolevels=5 global
-  undolevels=2 local
-
-  undolevels=5 global
-  undolevels=10 local
-
-global value shouldn't be changed and still be 5!
-ONE: expecting global undolevels: 5, local undolevels: -123456 (default)
-  undolevels=5 global
-  undolevels=-123456 local
-
-global value should be changed to 50
-THREE: expecting global undolevels: 50, local undolevels: -123456 (default)
-
-  undolevels=50 global
-  undolevels=-123456 local
 
 Testing 'lispwords' local value
   lispwords=foo,bar,baz
--- a/src/testdir/test_assert.vim
+++ b/src/testdir/test_assert.vim
@@ -1,19 +1,19 @@
 " Test that the methods used for testing work.
 
-func Test_assertFalse()
-  call assertFalse(0)
+func Test_assert_false()
+  call assert_false(0)
 endfunc
 
-func Test_assertTrue()
-  call assertTrue(1)
-  call assertTrue(123)
+func Test_assert_true()
+  call assert_true(1)
+  call assert_true(123)
 endfunc
 
-func Test_assertEqual()
+func Test_assert_equal()
   let s = 'foo'
-  call assertEqual('foo', s)
+  call assert_equal('foo', s)
   let n = 4
-  call assertEqual(4, n)
+  call assert_equal(4, n)
   let l = [1, 2, 3]
-  call assertEqual([1, 2, 3], l)
+  call assert_equal([1, 2, 3], l)
 endfunc
new file mode 100644
--- /dev/null
+++ b/src/testdir/test_undolevels.vim
@@ -0,0 +1,46 @@
+" Tests for 'undolevels'
+
+set nocompatible viminfo+=nviminfo
+
+func FillBuffer()
+  for i in range(1,13)
+    put=i
+    " Set 'undolevels' to split undo. 
+    exe "setg ul=" . &g:ul
+  endfor
+endfunc
+
+func Test_global_local_undolevels()
+  new one
+  set undolevels=5
+  call FillBuffer()
+  " will only undo the last 5 changes, end up with 13 - (5 + 1) = 7 lines
+  earlier 10
+  call assert_equal(5, &g:undolevels)
+  call assert_equal(-123456, &l:undolevels)
+  call assert_equal('7', getline('$'))
+
+  new two
+  setlocal undolevels=2
+  call FillBuffer()
+  " will only undo the last 2 changes, end up with 13 - (2 + 1) = 10 lines
+  earlier 10
+  call assert_equal(5, &g:undolevels)
+  call assert_equal(2, &l:undolevels)
+  call assert_equal('10', getline('$'))
+
+  setlocal ul=10
+  call assert_equal(5, &g:undolevels)
+  call assert_equal(10, &l:undolevels)
+
+  " Setting local value in "two" must not change local value in "one"
+  wincmd p
+  call assert_equal(5, &g:undolevels)
+  call assert_equal(-123456, &l:undolevels)
+
+  new three
+  setglobal ul=50
+  call assert_equal(50, &g:undolevels)
+  call assert_equal(-123456, &l:undolevels)
+
+endfunc
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    945,
+/**/
     944,
 /**/
     943,