From 7f386b175c2e0f7b76a6e21e38bbbff2f6083d0c Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Mon, 4 Dec 2017 22:18:11 +0100 Subject: [PATCH] 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. --- test/functional/helpers.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/test/functional/helpers.lua b/test/functional/helpers.lua index da334d4ac6..1709427d59 100644 --- a/test/functional/helpers.lua +++ b/test/functional/helpers.lua @@ -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