changeset 7391:4761fed349ed v7.4.1000

commit https://github.com/vim/vim/commit/c06624661a3aa6642304c06db9cebe553a4cab17 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Dec 30 15:49:05 2015 +0100 patch 7.4.1000 Problem: Test 49 is slow and doesn't work on MS-Windows. Solution: Start moving parts of test 49 to test_viml.
author Christian Brabandt <cb@256bit.org>
date Wed, 30 Dec 2015 16:00:05 +0100
parents c6215e9d4b30
children f81d908c396a
files src/Makefile src/testdir/runtest.vim src/testdir/test49.ok src/testdir/test49.vim src/version.c
diffstat 5 files changed, 22 insertions(+), 356 deletions(-) [+]
line wrap: on
line diff
--- a/src/Makefile
+++ b/src/Makefile
@@ -1976,12 +1976,19 @@ test_assert \
 	test_searchpos \
 	test_sort \
 	test_undolevels \
+	test_viml \
 	test_alot:
 	cd testdir; rm -f $@.res test.log messages; $(MAKE) -f Makefile $@.res VIMPROG=../$(VIMTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE)
+	@if test -f testdir/test.log; then \
+		cat testdir/test.log; \
+	fi
 	cat testdir/messages
 
 newtests:
 	cd testdir; rm -f $@.res test.log messages; $(MAKE) -f Makefile newtests VIMPROG=../$(VIMTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE)
+	@if test -f testdir/test.log; then \
+		cat testdir/test.log; \
+	fi
 	cat testdir/messages
 
 testclean:
--- a/src/testdir/runtest.vim
+++ b/src/testdir/runtest.vim
@@ -33,6 +33,16 @@ if &lines < 24 || &columns < 80
   cquit
 endif
 
+" For consistency run all tests with 'nocompatible' set.
+" This also enables use of line continuation.
+set nocp viminfo+=nviminfo
+
+" Avoid stopping at the "hit enter" prompt
+set nomore
+
+" Output all messages in English.
+lang mess C
+
 " Source the test script.  First grab the file name, in case the script
 " navigates away.
 let testname = expand('%')
--- a/src/testdir/test49.ok
+++ b/src/testdir/test49.ok
@@ -1,10 +1,4 @@
 Results of test49.vim:
-*** Test   1: OK (34695)
-*** Test   2: OK (34695)
-*** Test   3: OK (1384648195)
-*** Test   4: OK (32883)
-*** Test   5: OK (32883)
-*** Test   6: OK (603978947)
 *** Test   7: OK (90563)
 *** Test   8: OK (562493431)
 *** Test   9: OK (363)
--- a/src/testdir/test49.vim
+++ b/src/testdir/test49.vim
@@ -1,6 +1,6 @@
 " Vim script language tests
 " Author:	Servatius Brandt <Servatius.Brandt@fujitsu-siemens.com>
-" Last Change:	2015 Sep 25
+" Last Change:	2015 Dec 30
 
 "-------------------------------------------------------------------------------
 " Test environment							    {{{1
@@ -608,355 +608,8 @@ com! -nargs=1 -bar ExecAsScript call Exe
 " END_OF_TEST_ENVIRONMENT - do not change or remove this line.
 
 
-"-------------------------------------------------------------------------------
-" Test 1:   :endwhile in function					    {{{1
-"
-"	    Detect if a broken loop is (incorrectly) reactivated by the
-"	    :endwhile.  Use a :return to prevent an endless loop, and make
-"	    this test first to get a meaningful result on an error before other
-"	    tests will hang.
-"-------------------------------------------------------------------------------
-
-XpathINIT
-
-function! F()
-    Xpath 1					" X: 1
-    let first = 1
-    XloopINIT 2 8
-    while 1
-	Xloop 1					" X: 2	    + 0 * 16
-	if first
-	    Xloop 2				" X: 4	    + 0 * 32
-	    let first = 0
-	    XloopNEXT
-	    break
-	else
-	    Xloop 4				" X: 0	    + 0 * 64
-	    return
-	endif
-    endwhile
-endfunction
-
-call F()
-Xpath 128					" X: 128
-
-function! G()
-    Xpath 256					" X: 256    + 0 * 2048
-    let first = 1
-    XloopINIT 512 8
-    while 1
-	Xloop 1					" X: 512    + 0 * 4096
-	if first
-	    Xloop 2				" X: 1024   + 0 * 8192
-	    let first = 0
-	    XloopNEXT
-	    break
-	else
-	    Xloop 4				" X: 0	    + 0 * 16384
-	    return
-	endif
-	if 1	" unmatched :if
-    endwhile
-endfunction
-
-call G()
-Xpath 32768					" X: 32768
-
-Xcheck 34695
-
-" Leave F and G for execution as scripts in the next test.
-
-
-"-------------------------------------------------------------------------------
-" Test 2:   :endwhile in script						    {{{1
-"
-"	    Detect if a broken loop is (incorrectly) reactivated by the
-"	    :endwhile.  Use a :finish to prevent an endless loop, and place
-"	    this test before others that might hang to get a meaningful result
-"	    on an error.
-"
-"	    This test executes the bodies of the functions F and G from the
-"	    previous test as script files (:return replaced by :finish).
-"-------------------------------------------------------------------------------
-
-XpathINIT
-
-ExecAsScript F					" X: 1 + 2 + 4
-Xpath 128					" X: 128
-
-ExecAsScript G					" X: 256 + 512 + 1024
-Xpath 32768					" X: 32768
-
-unlet first
-delfunction F
-delfunction G
-
-Xcheck 34695
-
-
-"-------------------------------------------------------------------------------
-" Test 3:   :if, :elseif, :while, :continue, :break			    {{{1
-"-------------------------------------------------------------------------------
-
-XpathINIT
-if 1
-    Xpath 1					" X: 1
-    let loops = 3
-    XloopINIT 2 512
-    while loops > -1	    " main loop: loops == 3, 2, 1 (which breaks)
-	if loops <= 0
-	    let break_err = 1
-	    let loops = -1
-	else					"    3:  2:      1:
-	    Xloop 1				" X: 2 + 2*512 + 2*512*512
-	endif
-	if (loops == 2)
-	    while loops == 2 " dummy loop
-		Xloop 2				" X:     4*512
-		let loops = loops - 1
-		continue    " stop dummy loop
-		Xloop 4				" X:     0
-	    endwhile
-	    XloopNEXT
-	    continue	    " continue main loop
-	    Xloop 8				" X:     0
-	elseif (loops == 1)
-	    let p = 1
-	    while p	    " dummy loop
-		Xloop 16			" X:		 32*512*512
-		let p = 0
-		break	    " break dummy loop
-		Xloop 32			" X:		 0
-	    endwhile
-	    Xloop 64				" X:		 128*512*512
-	    unlet p
-	    break	    " break main loop
-	    Xloop 128				" X:		 0
-	endif
-	if (loops > 0)
-	    Xloop 256				" X: 512
-	endif
-	while loops == 3    " dummy loop
-	    let loops = loops - 1
-	endwhile	    " end dummy loop
-	XloopNEXT
-    endwhile		    " end main loop
-    Xpath 268435456				" X: 1024*512*512
-else
-    Xpath 536870912				" X: 0
-endif
-Xpath 1073741824				" X: 4096*512*512
-if exists("break_err")
-    " The Xpath command does not accept 2^31 (negative); add explicitly:
-    let Xpath = Xpath + 2147483648		" X: 0
-    unlet break_err
-endif
-
-unlet loops
-
-Xcheck 1384648195
-
-
-"-------------------------------------------------------------------------------
-" Test 4:   :return							    {{{1
-"-------------------------------------------------------------------------------
-
-XpathINIT
-
-function! F()
-    if 1
-	Xpath 1					" X: 1
-	let loops = 3
-	XloopINIT 2 16
-	while loops > 0				"    3:  2:     1:
-	    Xloop 1				" X: 2 + 2*16 + 0*16*16
-	    if (loops == 2)
-		Xloop 2				" X:     4*16
-		return
-		Xloop 4				" X:     0
-	    endif
-	    Xloop 8				" X: 16
-	    let loops = loops - 1
-	    XloopNEXT
-	endwhile
-	Xpath 8192				" X: 0
-    else
-	Xpath 16384				" X: 0
-    endif
-endfunction
-
-call F()
-Xpath 32768					" X: 8*16*16*16
-
-Xcheck 32883
-
-" Leave F for execution as a script in the next test.
-
-
-"-------------------------------------------------------------------------------
-" Test 5:   :finish							    {{{1
-"
-"	    This test executes the body of the function F from the previous test
-"	    as a script file (:return replaced by :finish).
-"-------------------------------------------------------------------------------
-
-XpathINIT
-
-ExecAsScript F					" X: 1 + 2 + 2*16 + 4*16 + 16
-Xpath 32768					" X: 32768
-
-unlet loops
-delfunction F
-
-Xcheck 32883
-
-
-"-------------------------------------------------------------------------------
-" Test 6:   Defining functions in :while loops				    {{{1
-"
-"	     Functions can be defined inside other functions.  An inner function
-"	     gets defined when the outer function is executed.  Functions may
-"	     also be defined inside while loops.  Expressions in braces for
-"	     defining the function name are allowed.
-"-------------------------------------------------------------------------------
-
-XpathINIT
-
-if ExtraVim()
-
-    " The command CALL collects the argument of all its invocations in "calls"
-    " when used from a function (that is, when the global variable "calls" needs
-    " the "g:" prefix).  This is to check that the function code is skipped when
-    " the function is defined.  For inner functions, do so only if the outer
-    " function is not being executed.
-    "
-    let calls = ""
-    com! -nargs=1 CALL
-		\ if !exists("calls") && !exists("outer") |
-		\ let g:calls = g:calls . <args> |
-		\ endif
-
-
-    XloopINIT! 1 16
-
-    let i = 0
-    while i < 3
-
-	XloopNEXT
-	let i = i + 1
-
-	if i == 1
-	    Xloop 1				" X: 1
-	    function! F1(arg)
-		CALL a:arg
-		let outer = 1
-
-		XloopINIT! 4096 4
-		let j = 0
-		while j < 1
-		    XloopNEXT
-		    Xloop 1			" X: 4096
-		    let j = j + 1
-		    function! G1(arg)
-			CALL a:arg
-		    endfunction
-		    Xloop 2			" X: 8192
-		endwhile
-	    endfunction
-	    Xloop 2				" X: 2
-
-	    continue
-	endif
-
-	Xloop 4					" X: 4 * (16 + 256)
-	function! F{i}(i, arg)
-	    CALL a:arg
-	    let outer = 1
-
-	    XloopINIT! 16384 4
-	    if a:i == 3
-		XloopNEXT
-		XloopNEXT
-		XloopNEXT
-	    endif
-	    let k = 0
-	    while k < 3
-		XloopNEXT
-		Xloop 1				" X: 16384*(1+4+16+64+256+1024)
-		let k = k + 1
-		function! G{a:i}{k}(arg)
-		    CALL a:arg
-		endfunction
-		Xloop 2				" X: 32768*(1+4+16+64+256+1024)
-	    endwhile
-	endfunction
-	Xloop 8					" X: 8 * (16 + 256)
-
-    endwhile
-
-    if exists("*G1")
-	Xpath 67108864				" X: 0
-    endif
-    if exists("*F1")
-	call F1("F1")
-	if exists("*G1")
-	    call G1("G1")
-	endif
-    endif
-
-    if exists("G21") || exists("G21") || exists("G21")
-	Xpath 134217728				" X: 0
-    endif
-    if exists("*F2")
-	call F2(2, "F2")
-	if exists("*G21")
-	    call G21("G21")
-	endif
-	if exists("*G22")
-	    call G22("G22")
-	endif
-	if exists("*G23")
-	    call G23("G23")
-	endif
-    endif
-
-    if exists("G31") || exists("G31") || exists("G31")
-	Xpath 268435456				" X: 0
-    endif
-    if exists("*F3")
-	call F3(3, "F3")
-	if exists("*G31")
-	    call G31("G31")
-	endif
-	if exists("*G32")
-	    call G32("G32")
-	endif
-	if exists("*G33")
-	    call G33("G33")
-	endif
-    endif
-
-    Xpath 536870912				" X: 536870912
-
-    if calls != "F1G1F2G21G22G23F3G31G32G33"
-	Xpath 1073741824			" X: 0
-	Xout "calls is" calls
-    endif
-
-    delfunction F1
-    delfunction G1
-    delfunction F2
-    delfunction G21
-    delfunction G22
-    delfunction G23
-    delfunction G31
-    delfunction G32
-    delfunction G33
-
-endif
-
-Xcheck 603978947
-
+" Tests 1 to 6 were moved to test_viml.vim
+let Xtest = 7
 
 "-------------------------------------------------------------------------------
 " Test 7:   Continuing on errors outside functions			    {{{1
--- 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 */
 /**/
+    1000,
+/**/
     999,
 /**/
     998,