summaryrefslogtreecommitdiffstats
path: root/src/testdir/runtest.vim
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-09-23 19:42:31 +0100
committerBram Moolenaar <Bram@vim.org>2022-09-23 19:42:31 +0100
commitb9093d50098ccff3848c2a404b9d0324a074c7b7 (patch)
tree8e21f358921f8efd75f52660570d5e1dce6addf3 /src/testdir/runtest.vim
parent4ecf16bbf951f10fd32c918c9d8bc004b7f8f7c9 (diff)
patch 9.0.0560: elapsed time since testing started is not visiblev9.0.0560
Problem: Elapsed time since testing started is not visible. Solution: Show the elapsed time while running tests.
Diffstat (limited to 'src/testdir/runtest.vim')
-rw-r--r--src/testdir/runtest.vim19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/testdir/runtest.vim b/src/testdir/runtest.vim
index bb0325fe89..5e1d6418f3 100644
--- a/src/testdir/runtest.vim
+++ b/src/testdir/runtest.vim
@@ -74,7 +74,16 @@ if &lines < 24 || &columns < 80
endif
if has('reltime')
- let s:start_time = reltime()
+ let s:run_start_time = reltime()
+
+ if !filereadable('starttime')
+ " first test, store the overall test starting time
+ let s:test_start_time = localtime()
+ call writefile([string(s:test_start_time)], 'starttime')
+ else
+ " second or later test, read the overall test starting time
+ let s:test_start_time = readfile('starttime')[0]->str2nr()
+ endif
endif
" Always use forward slashes.
@@ -173,12 +182,14 @@ function GetAllocId(name)
return lnum - top - 1
endfunc
-let g:func_start = reltime()
+if has('reltime')
+ let g:func_start = reltime()
+endif
func RunTheTest(test)
let prefix = ''
if has('reltime')
- let prefix = 'took ' .. reltimestr(reltime(g:func_start)) .. '; now '
+ let prefix = strftime('%M:%S', localtime() - s:test_start_time) .. ' '
let g:func_start = reltime()
endif
echoconsole prefix .. 'Executing ' .. a:test
@@ -377,7 +388,7 @@ func FinishTesting()
endif
if s:done > 0 && has('reltime')
let message = s:t_bold .. message .. repeat(' ', 40 - len(message))
- let message ..= ' in ' .. reltimestr(reltime(s:start_time)) .. ' seconds'
+ let message ..= ' in ' .. reltimestr(reltime(s:run_start_time)) .. ' seconds'
let message ..= s:t_normal
endif
echo message