diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-09-23 20:25:55 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-09-23 20:25:55 +0100 |
commit | 3bcd0ddc2deb34794c735c6ea0b8f964b510c6db (patch) | |
tree | 2682cb6ae790f960acf1adfa500654a1d9edaff7 /src | |
parent | b9093d50098ccff3848c2a404b9d0324a074c7b7 (diff) | |
download | vim-git-3bcd0ddc2deb34794c735c6ea0b8f964b510c6db.tar.gz |
patch 9.0.0561: when a test gets stuck it just hangs foreverv9.0.0561
Problem: When a test gets stuck it just hangs forever.
Solution: Set a timeout of 30 seconds.
Diffstat (limited to 'src')
-rw-r--r-- | src/testdir/runtest.vim | 21 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 23 insertions, 0 deletions
diff --git a/src/testdir/runtest.vim b/src/testdir/runtest.vim index 5e1d6418f..e1d999912 100644 --- a/src/testdir/runtest.vim +++ b/src/testdir/runtest.vim @@ -186,6 +186,17 @@ if has('reltime') let g:func_start = reltime() endif +" Invoked when a test takes too much time. +func TestTimeout(id) + split test.log + call append(line('$'), '') + call append(line('$'), 'Test timed out: ' .. g:testfunc) + write + call add(v:errors, 'Test timed out: ' . g:testfunc) + + cquit! 42 +endfunc + func RunTheTest(test) let prefix = '' if has('reltime') @@ -194,6 +205,12 @@ func RunTheTest(test) endif echoconsole prefix .. 'Executing ' .. a:test + if has('timers') + " No test should take longer than 30 seconds. If it takes longer we + " assume we are stuck and need to break out. + let test_timeout_timer = timer_start(30000, 'TestTimeout') + endif + " Avoid stopping at the "hit enter" prompt set nomore @@ -259,6 +276,10 @@ func RunTheTest(test) endtry endif + if has('timers') + call timer_stop(test_timeout_timer) + endif + " Clear any autocommands and put back the catch-all for SwapExists. au! au SwapExists * call HandleSwapExists() diff --git a/src/version.c b/src/version.c index fb34719eb..20ed2d764 100644 --- a/src/version.c +++ b/src/version.c @@ -700,6 +700,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 561, +/**/ 560, /**/ 559, |