test: retry(): fix time calculation

libuv caches the results of uv.now() until the next loop tick. If a test
does not spin the libuv event loop, retry() enters an infinite cycle.
This commit is contained in:
Justin M. Keyes 2017-12-04 22:18:11 +01:00
parent 175174597d
commit 7f386b175c

View File

@ -261,6 +261,7 @@ local function retry(max, max_ms, fn)
if status then
return result
end
luv.update_time() -- Update cached value of luv.now() (libuv: uv_now()).
if (max and tries >= max) or (luv.now() - start_time > timeout) then
if type(result) == "string" then
result = "\nretry() attempts: "..tostring(tries).."\n"..result