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
--- 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,