]> granicus.if.org Git - vim/commitdiff
patch 9.0.0560: elapsed time since testing started is not visible v9.0.0560
authorBram Moolenaar <Bram@vim.org>
Fri, 23 Sep 2022 18:42:31 +0000 (19:42 +0100)
committerBram Moolenaar <Bram@vim.org>
Fri, 23 Sep 2022 18:42:31 +0000 (19:42 +0100)
Problem:    Elapsed time since testing started is not visible.
Solution:   Show the elapsed time while running tests.

src/testdir/Make_all.mak
src/testdir/Make_ming.mak
src/testdir/Make_mvc.mak
src/testdir/Makefile
src/testdir/runtest.vim
src/version.c

index d7abcb5a48f4bf5fd3361f19011291acd4371ed9..18409d2d602620a96bd01849c005d96bc70a83a2 100644 (file)
@@ -7,6 +7,9 @@
 NO_PLUGINS = --noplugin --not-a-term
 NO_INITS = -U NONE $(NO_PLUGINS)
 
+# File to delete when testing starts
+CLEANUP_FILES = test.log messages starttime
+
 # Tests for tiny and small builds.
 SCRIPTS_TINY = \
        test20 \
index 0638adef9827e461fbec90d60cab6fd4392bc660..2676111c9984e5dc81a64a338d1bd1f8af129646 100644 (file)
@@ -47,6 +47,7 @@ report:
        @if exist test.log ( copy /y test.log test_result.log > nul ) \
                else ( echo No failures reported > test_result.log )
        $(VIMPROG) -u NONE $(COMMON_ARGS) -S summarize.vim messages
+       -if exist starttime del starttime
        @echo.
        @echo Test results:
        @cmd /c type test_result.log
@@ -60,6 +61,7 @@ $(NEW_TESTS):
        -if exist $@.res del $@.res
        -if exist test.log del test.log
        -if exist messages del messages
+       -if exist starttime del starttime
        @$(MAKE) -f Make_ming.mak $@.res VIMPROG=$(VIMPROG) --no-print-directory
        @type messages
        @if exist test.log exit 1
@@ -83,6 +85,7 @@ clean:
        -@if exist test.log $(DEL) test.log
        -@if exist test_result.log del test_result.log
        -@if exist messages $(DEL) messages
+       -@if exist starttime $(DEL) starttime
        -@if exist benchmark.out del benchmark.out
        -@if exist opt_test.vim $(DEL) opt_test.vim
        -@if exist guidialog $(DEL) guidialog
@@ -92,6 +95,7 @@ nolog:
        -@if exist test.log $(DEL) test.log
        -@if exist test_result.log del test_result.log
        -@if exist messages $(DEL) messages
+       -@if exist starttime $(DEL) starttime
 
 
 # Tiny tests.  Works even without the +eval feature.
index 882c5d082f0b7ef9ee5d52570dc39bedce3220fe..cbb21712ae8716424315c7dce33a82a37cf40ea7 100644 (file)
@@ -35,6 +35,7 @@ report:
        @if exist test.log ( copy /y test.log test_result.log > nul ) \
                else ( echo No failures reported > test_result.log )
        $(VIMPROG) -u NONE $(COMMON_ARGS) -S summarize.vim messages
+       -if exist starttime del starttime
        @echo.
        @echo Test results:
        @cmd /c type test_result.log
@@ -48,6 +49,7 @@ $(NEW_TESTS):
        -if exist $@.res del $@.res
        -if exist test.log del test.log
        -if exist messages del messages
+       -if exist starttime del starttime
        @$(MAKE) -nologo -f Make_mvc.mak $@.res VIMPROG=$(VIMPROG)
        @type messages
        @if exist test.log exit 1
@@ -71,6 +73,7 @@ clean:
        -if exist test.log del test.log
        -if exist test_result.log del test_result.log
        -if exist messages del messages
+       -if exist starttime del starttime
        -if exist benchmark.out del benchmark.out
        -if exist opt_test.vim del opt_test.vim
        -if exist guidialog del guidialog
@@ -80,6 +83,7 @@ nolog:
        -if exist test.log del test.log
        -if exist test_result.log del test_result.log
        -if exist messages del messages
+       -if exist starttime del starttime
 
 
 # Tiny tests.  Works even without the +eval feature.
index 54a998961f1fd86351b2d6ad5db9c78c54009496..b69d935538d74dd0e64db466a8573e41cf65ef05 100644 (file)
@@ -12,7 +12,7 @@ SCRIPTSOURCE = ../../runtime
 # Comment out this line to see the verbose output of tests.
 #
 # Catches SwapExists to avoid hanging at the ATTENTION prompt.
-REDIR_TEST_TO_NULL = --cmd 'au SwapExists * let v:swapchoice = "e"' | LC_ALL=C LANG=C LANGUAGE=C awk '/Executing Test_/{match($$0, "(took .*; now )?Executing Test_[^\\)]*\\)"); print substr($$0, RSTART, RLENGTH) "\r"; fflush()}'
+REDIR_TEST_TO_NULL = --cmd 'au SwapExists * let v:swapchoice = "e"' | LC_ALL=C LANG=C LANGUAGE=C awk '/Executing Test_/{match($$0, "([0-9][0-9]:[0-9][0-9] *)?Executing Test_[^\\)]*\\)"); print substr($$0, RSTART, RLENGTH) "\r"; fflush()}'
 
 # Uncomment this line to use valgrind for memory leaks and extra warnings.
 #   The output goes into a file "valgrind.testN"
@@ -49,6 +49,7 @@ report:
                else echo No failures reported > test_result.log; \
                fi"
        $(VIMPROG) -u NONE $(NO_INITS) -S summarize.vim messages $(REDIR_TEST_TO_NULL)
+       @rm -f starttime
        @echo
        @echo 'Test results:'
        @cat test_result.log
@@ -63,7 +64,7 @@ $(SCRIPTS_TINY_OUT) $(NEW_TESTS_RES): $(VIMPROG)
 # Execute an individual new style test, e.g.:
 #      make test_largefile
 $(NEW_TESTS):
-       rm -f $@.res test.log messages
+       rm -f $@.res $(CLEANUP_FILES)
        @MAKEFLAGS=--no-print-directory $(MAKE) -f Makefile $@.res VIMPROG=$(VIMPROG) XXDPROG=$(XXDPROG) SCRIPTSOURCE=$(SCRIPTSOURCE)
        @cat messages
        @if test -f test.log; then \
@@ -72,9 +73,10 @@ $(NEW_TESTS):
 
 # Run only tests specific for Vim9 script
 test_vim9:
-       rm -f test_vim9_*.res test.log messages
+       rm -f test_vim9_*.res $(CLEANUP_FILES)
        @MAKEFLAGS=--no-print-directory $(MAKE) -f Makefile $(TEST_VIM9_RES) VIMPROG=$(VIMPROG) XXDPROG=$(XXDPROG) SCRIPTSOURCE=$(SCRIPTSOURCE)
        @cat messages
+       @rm -f starttime
        @MAKEFLAGS=--no-print-directory $(MAKE) -f Makefile report VIMPROG=$(VIMPROG) XXDPROG=$(XXDPROG) SCRIPTSOURCE=$(SCRIPTSOURCE)
        @if test -f test.log; then \
                exit 1; \
@@ -88,7 +90,7 @@ RUN_VIM = VIMRUNTIME=$(SCRIPTSOURCE) $(VALGRIND) $(VIMPROG) -f $(GUI_FLAG) -u un
 # that may result from working on the tests, not only from running them.
 clean:
        -rm -rf *.out *.failed *.res *.rej *.orig XfakeHOME Xdir1 Xfind
-       -rm -f opt_test.vim test.log test_result.log messages
+       -rm -f opt_test.vim test_result.log $(CLEANUP_FILES)
        -rm -rf $(RM_ON_RUN) $(RM_ON_START)
        -rm -f valgrind.*
        -rm -f asan.*
@@ -99,7 +101,7 @@ benchmarkclean:
        rm -f $(SCRIPTS_BENCH)
 
 nolog:
-       -rm -f test.log test_result.log messages
+       -rm -f test_result.log $(CLEANUP_FILES)
 
 
 # Tiny tests.  Works even without the +eval feature.
index bb0325fe89e2c6487cd3c32b84ba4535e7c8171b..5e1d6418f3de7fcabe0b1494e95411096926c355 100644 (file)
@@ -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
index 7b4e24f953737ec07b209b2ad8b25ccbbefc4041..fb34719ebf3c887d80e3c760dc008a4b6a2dd311 100644 (file)
@@ -699,6 +699,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    560,
 /**/
     559,
 /**/