summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2018-06-12 14:58:39 +0200
committerBram Moolenaar <Bram@vim.org>2018-06-12 14:58:39 +0200
commit8903676d3d4c3fcb37d2a55c67370f30806b1626 (patch)
tree0bc417ec793d418d1df11b536c4ada2e8f79c3bb
parent7580849df9d6c7c515f5ed784019336d8a8ec0f0 (diff)
downloadvim-git-8903676d3d4c3fcb37d2a55c67370f30806b1626.tar.gz
patch 8.1.0044: if a test function exists Vim this may go unnoticedv8.1.0044
Problem: If a test function exists Vim this may go unnoticed. Solution: Check for a test funtion quitting Vim. Fix tests that did exit Vim.
-rw-r--r--src/testdir/runtest.vim12
-rw-r--r--src/testdir/test_assert.vim6
-rw-r--r--src/version.c2
3 files changed, 20 insertions, 0 deletions
diff --git a/src/testdir/runtest.vim b/src/testdir/runtest.vim
index 5b8126d5d..4f508a487 100644
--- a/src/testdir/runtest.vim
+++ b/src/testdir/runtest.vim
@@ -124,7 +124,10 @@ func RunTheTest(test)
exe 'call ' . a:test
else
try
+ let s:test = a:test
+ au VimLeavePre * call EarlyExit(s:test)
exe 'call ' . a:test
+ au! VimLeavePre
catch /^\cskipped/
call add(s:messages, ' Skipped')
call add(s:skipped, 'SKIPPED ' . a:test . ': ' . substitute(v:exception, '^\S*\s\+', '', ''))
@@ -174,6 +177,15 @@ func AfterTheTest()
endif
endfunc
+func EarlyExit(test)
+ " It's OK for the test we use to test the quit detection.
+ if a:test != 'Test_zz_quit_detected()'
+ call add(v:errors, 'Test caused Vim to exit: ' . a:test)
+ endif
+
+ call FinishTesting()
+endfunc
+
" This function can be called by a test if it wants to abort testing.
func FinishTesting()
call AfterTheTest()
diff --git a/src/testdir/test_assert.vim b/src/testdir/test_assert.vim
index 61147286f..28db289b2 100644
--- a/src/testdir/test_assert.vim
+++ b/src/testdir/test_assert.vim
@@ -198,3 +198,9 @@ func Test_user_is_happy()
smile
sleep 300m
endfunc
+
+" Must be last.
+func Test_zz_quit_detected()
+ " Verify that if a test function ends Vim the test script detects this.
+ quit
+endfunc
diff --git a/src/version.c b/src/version.c
index 100506b0b..dfdc07d59 100644
--- a/src/version.c
+++ b/src/version.c
@@ -762,6 +762,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 44,
+/**/
43,
/**/
42,