0
0
mirror of https://github.com/vim/vim.git synced 2025-10-06 05:44:14 -04:00

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.
This commit is contained in:
Bram Moolenaar
2015-11-30 21:38:24 +01:00
parent 43345546ae
commit 683fa185a4
9 changed files with 87 additions and 104 deletions

View File

@@ -87,6 +87,7 @@ SRC_ALL = \
src/testdir/README.txt \ src/testdir/README.txt \
src/testdir/*.in \ src/testdir/*.in \
src/testdir/sautest/autoload/*.vim \ src/testdir/sautest/autoload/*.vim \
src/testdir/runtest.vim \
src/testdir/test[0-9]*.ok \ src/testdir/test[0-9]*.ok \
src/testdir/test[0-9]*a.ok \ src/testdir/test[0-9]*a.ok \
src/testdir/test_[a-z]*.ok \ src/testdir/test_[a-z]*.ok \

View File

@@ -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 VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1380,7 +1380,7 @@ v:errmsg Last given error message. It's allowed to set this variable.
< "errmsg" also works, for backwards compatibility. < "errmsg" also works, for backwards compatibility.
*v:errors* *errors-variable* *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. This is a list of strings.
The assert functions append an item when an assert fails. The assert functions append an item when an assert fails.
To remove old results make it empty: > To remove old results make it empty: >
@@ -1742,13 +1742,13 @@ append( {lnum}, {string}) Number append {string} below line {lnum}
append( {lnum}, {list}) Number append lines {list} below line {lnum} append( {lnum}, {list}) Number append lines {list} below line {lnum}
argc() Number number of files in the argument list argc() Number number of files in the argument list
argidx() Number current index in the argument list argidx() Number current index in the argument list
arglistid( [{winnr}, [ {tabnr}]]) arglistid( [{winnr} [, {tabnr}]])
Number argument list id Number argument list id
argv( {nr}) String {nr} entry of the argument list argv( {nr}) String {nr} entry of the argument list
argv( ) List the argument list argv( ) List the argument list
assertEqual( {exp}, {act}) none assert that {exp} equals {act} assert_equal( {exp}, {act} [, {msg}]) none assert that {exp} equals {act}
assertFalse( {actual}) none assert that {actual} is false assert_false( {actual} [, {msg}]) none assert that {actual} is false
assertTrue( {actual}) none assert that {actual} is true assert_true( {actual} [, {msg}]) none assert that {actual} is true
asin( {expr}) Float arc sine of {expr} asin( {expr}) Float arc sine of {expr}
atan( {expr}) Float arc tangent of {expr} atan( {expr}) Float arc tangent of {expr}
atan2( {expr}, {expr}) Float arc tangent of {expr1} / {expr2} atan2( {expr}, {expr}) Float arc tangent of {expr1} / {expr2}
@@ -2166,30 +2166,36 @@ argv([{nr}]) The result is the {nr}th file in the argument list of the
< Without the {nr} argument a |List| with the whole |arglist| is < Without the {nr} argument a |List| with the whole |arglist| is
returned. returned.
*assertEqual()* *assert_equal()*
assertEqual({expected}, {actual}) assert_equal({expected}, {actual}, [, {msg}])
When {expected} and {actual} are not equal an error message is When {expected} and {actual} are not equal an error message is
added to |v:errors|. added to |v:errors|.
There is no automatic conversion, the String "4" is different There is no automatic conversion, the String "4" is different
from the Number 4. And the number 4 is different from the from the Number 4. And the number 4 is different from the
Float 4.0. The value of 'ignorecase' is not used here, case Float 4.0. The value of 'ignorecase' is not used here, case
always matters. always matters.
When {msg} is omitted an error in the form "Expected
{expected} but got {actual}" is produced.
Example: > Example: >
assertEqual('foo', 'bar') assert_equal('foo', 'bar')
< Will result in a string to be added to |v:errors|: < Will result in a string to be added to |v:errors|:
test.vim line 12: Expected 'foo' but got 'bar' ~ 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 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 A value is false when it is zero. When "{actual}" is not a
number the assert fails. number the assert fails.
When {msg} is omitted an error in the form "Expected False but
got {actual}" is produced.
assertTrue({actual}) *assertTrue()* assert_true({actual}, [, {msg}]) *assert_true()*
When {actual} is not true an error message is added to 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} A value is true when it is a non-zeron number. When {actual}
is not a number the assert fails. 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()* asin({expr}) *asin()*
Return the arc sine of {expr} measured in radians, as a |Float| Return the arc sine of {expr} measured in radians, as a |Float|

View File

@@ -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 VIM USER MANUAL - by Bram Moolenaar
@@ -888,6 +888,11 @@ Mappings: *mapping-functions*
maparg() get rhs of a mapping maparg() get rhs of a mapping
wildmenumode() check if the wildmode is active 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* Various: *various-functions*
mode() get current editing mode mode() get current editing mode
visualmode() last visual mode used visualmode() last visual mode used

View File

@@ -68,7 +68,8 @@ SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.out \
test_utf8.out \ test_utf8.out \
test_writefile.out test_writefile.out
NEW_TESTS = test_assert.res NEW_TESTS = test_assert.res \
test_undolevels.res
SCRIPTS_GUI = test16.out SCRIPTS_GUI = test16.out

View File

@@ -1,45 +1,8 @@
Tests for 'undolevel' and 'lispwords' settings being global-local Tests for 'lispwords' settings being global-local
STARTTEST STARTTEST
:so small.vim :so small.vim
:set nocompatible viminfo+=nviminfo ul=5 :set nocompatible viminfo+=nviminfo
: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
:" :"
:" Testing 'lispwords' :" Testing 'lispwords'
:" :"

View File

@@ -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 Testing 'lispwords' local value
lispwords=foo,bar,baz lispwords=foo,bar,baz

View File

@@ -1,19 +1,19 @@
" Test that the methods used for testing work. " Test that the methods used for testing work.
func Test_assertFalse() func Test_assert_false()
call assertFalse(0) call assert_false(0)
endfunc endfunc
func Test_assertTrue() func Test_assert_true()
call assertTrue(1) call assert_true(1)
call assertTrue(123) call assert_true(123)
endfunc endfunc
func Test_assertEqual() func Test_assert_equal()
let s = 'foo' let s = 'foo'
call assertEqual('foo', s) call assert_equal('foo', s)
let n = 4 let n = 4
call assertEqual(4, n) call assert_equal(4, n)
let l = [1, 2, 3] let l = [1, 2, 3]
call assertEqual([1, 2, 3], l) call assert_equal([1, 2, 3], l)
endfunc endfunc

View File

@@ -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

View File

@@ -741,6 +741,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
945,
/**/ /**/
944, 944,
/**/ /**/