Mercurial > vim
changeset 16967:586d625e21b4 v8.1.1484
patch 8.1.1484: some tests are slow
commit https://github.com/vim/vim/commit/75ee544f99ca66be8105570c6309d95435ad30d1
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Jun 6 18:05:25 2019 +0200
patch 8.1.1484: some tests are slow
Problem: Some tests are slow.
Solution: Add timing to the test messages. Fix double free when quitting in
VimLeavePre autocmd.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 06 Jun 2019 18:15:05 +0200 |
parents | d285427f6849 |
children | 8a2324f4a8ba |
files | src/eval.c src/testdir/runtest.vim src/version.c |
diffstat | 3 files changed, 22 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/eval.c +++ b/src/eval.c @@ -430,11 +430,12 @@ eval_clear(void) vim_free(SCRIPT_SV(i)); ga_clear(&ga_scripts); - /* unreferenced lists and dicts */ + // functions need to be freed before gargabe collecting, otherwise local + // variables might be freed twice. + free_all_functions(); + + // unreferenced lists and dicts (void)garbage_collect(FALSE); - - /* functions */ - free_all_functions(); } #endif
--- a/src/testdir/runtest.vim +++ b/src/testdir/runtest.vim @@ -42,6 +42,10 @@ if &lines < 24 || &columns < 80 cquit endif +if has('reltime') + let s:start_time = reltime() +endif + " Common with all tests on all systems. source setup.vim @@ -99,6 +103,9 @@ endfunc func RunTheTest(test) echo 'Executing ' . a:test + if has('reltime') + let func_start = reltime() + endif " Avoid stopping at the "hit enter" prompt set nomore @@ -126,7 +133,11 @@ func RunTheTest(test) endtry endif - call add(s:messages, 'Executing ' . a:test) + let message = 'Executed ' . a:test + if has('reltime') + let message ..= ' in ' .. reltimestr(reltime(func_start)) .. ' seconds' + endif + call add(s:messages, message) let s:done += 1 if a:test =~ 'Test_nocatch_' @@ -232,6 +243,9 @@ func FinishTesting() else let message = 'Executed ' . s:done . (s:done > 1 ? ' tests' : ' test') endif + if has('reltime') + let message ..= ' in ' .. reltimestr(reltime(s:start_time)) .. ' seconds' + endif echo message call add(s:messages, message) if s:fail > 0