diff options
author | Bram Moolenaar <Bram@vim.org> | 2018-06-12 14:58:39 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2018-06-12 14:58:39 +0200 |
commit | 8903676d3d4c3fcb37d2a55c67370f30806b1626 (patch) | |
tree | 0bc417ec793d418d1df11b536c4ada2e8f79c3bb | |
parent | 7580849df9d6c7c515f5ed784019336d8a8ec0f0 (diff) | |
download | vim-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.vim | 12 | ||||
-rw-r--r-- | src/testdir/test_assert.vim | 6 | ||||
-rw-r--r-- | src/version.c | 2 |
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, |