Mercurial > vim
changeset 7352:ddab7ae8796d v7.4.981
commit https://github.com/vim/vim/commit/4686b323e4bc0f466500b018959f6c8965f010f9
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Dec 28 14:44:10 2015 +0100
patch 7.4.981
Problem: An error in a test script goes unnoticed.
Solution: Source the test script inside try/catch. (Hirohito Higashi)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Mon, 28 Dec 2015 14:45:04 +0100 |
parents | bd4f7190716f |
children | b3207349d704 |
files | src/testdir/runtest.vim src/version.c |
diffstat | 2 files changed, 12 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/testdir/runtest.vim +++ b/src/testdir/runtest.vim @@ -21,9 +21,7 @@ " It will be called after each Test_ function. " Without the +eval feature we can't run these tests, bail out. -if 0 - quit! -endif +so small.vim " Check that the screen size is at least 24 x 80 characters. if &lines < 24 || &columns < 80 @@ -38,7 +36,15 @@ endif " Source the test script. First grab the file name, in case the script " navigates away. let testname = expand('%') -source % +let done = 0 +let fail = 0 +let errors = [] +try + source % +catch + let fail += 1 + call add(errors, 'Caught exception: ' . v:exception . ' @ ' . v:throwpoint) +endtry " Locate Test_ functions and execute them. redir @q @@ -46,9 +52,6 @@ function /^Test_ redir END let tests = split(substitute(@q, 'function \(\k*()\)', '\1', 'g')) -let done = 0 -let fail = 0 -let errors = [] for test in tests if exists("*SetUp") call SetUp()