diff src/testdir/shared.vim @ 9933:7f38e72a9d65 v7.4.2240

commit https://github.com/vim/vim/commit/f267f8bdf777073e392ada5b31d837c7b6090eb4 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Aug 22 21:40:29 2016 +0200 patch 7.4.2240 Problem: Tests using the sleep time can be flaky. Solution: Use reltime() if available. (Partly by Shane Harper)
author Christian Brabandt <cb@256bit.org>
date Mon, 22 Aug 2016 21:45:06 +0200
parents 5c288e5e1493
children 88331ee68367
line wrap: on
line diff
--- a/src/testdir/shared.vim
+++ b/src/testdir/shared.vim
@@ -109,19 +109,31 @@ func s:kill_server(cmd)
 endfunc
 
 " Wait for up to a second for "expr" to become true.
-" Return time slept in milliseconds.
+" Return time slept in milliseconds.  With the +reltime feature this can be
+" more than the actual waiting time.  Without +reltime it can also be less.
 func WaitFor(expr)
-  let slept = 0
+  " using reltime() is more accurate, but not always available
+  if has('reltime')
+    let start = reltime()
+  else
+    let slept = 0
+  endif
   for i in range(100)
     try
       if eval(a:expr)
+	if has('reltime')
+	  return float2nr(reltimefloat(reltime(start)) * 1000)
+	endif
 	return slept
       endif
     catch
     endtry
-    let slept += 10
+    if !has('reltime')
+      let slept += 10
+    endif
     sleep 10m
   endfor
+  return 1000
 endfunc
 
 " Run Vim, using the "vimcmd" file and "-u NORC".