# HG changeset patch # User Bram Moolenaar # Date 1559837705 -7200 # Node ID 586d625e21b419d7fbe8ac9149c0ef16a0b69ae6 # Parent d285427f6849f704294e1fa1b6ac60757bab6c2e patch 8.1.1484: some tests are slow commit https://github.com/vim/vim/commit/75ee544f99ca66be8105570c6309d95435ad30d1 Author: Bram Moolenaar 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. diff --git a/src/eval.c b/src/eval.c --- 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 diff --git a/src/testdir/runtest.vim b/src/testdir/runtest.vim --- 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 diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -768,6 +768,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1484, +/**/ 1483, /**/ 1482,