Re: [PATCH v5 3/6] git-p4: retry kill/cleanup operations in tests with timeout
From: Lars Schneider <hidden>
Date: 2016-06-15 23:07:16
On 16 Nov 2015, at 22:14, Eric Sunshine [off-list ref] wrote:
On Sun, Nov 15, 2015 at 8:08 AM, [off-list ref] wrote:quoted
From: Lars Schneider <redacted> In rare cases kill/cleanup operations in tests fail. Retry these operations with a timeout to make the test less flaky. Signed-off-by: Lars Schneider <redacted> ---diff --git a/t/lib-git-p4.sh b/t/lib-git-p4.sh@@ -121,22 +125,33 @@ p4_add_user() { EOF} +retry_until_success() { + timeout=$(($(date +%s) + $RETRY_TIMEOUT))There was some discussion previously[1] about detecting dynamically whether 'date +%s' was supported. Was this something that you intended to do, or did you decide against it since p4 is not supported on such platforms? Same question also applies to patch 4/6.
While implementing it I thought more about it. P4D is only supported on platforms that support the date function. That means these tests will only run on platforms that support the date function. Consequently I wondered if this would justify the slightly more complicated code. However, if you think this change would help the patch to get accepted then I will add it. Thanks, Lars
[1]: http://article.gmane.org/gmane.comp.version-control.git/280978/match=lazy+prerequisitequoted
+ until "$@" 2>/dev/null || test $(date +%s) -gt $timeout + do : + done +} + +retry_until_fail() { + timeout=$(($(date +%s) + $RETRY_TIMEOUT)) + until ! "$@" 2>/dev/null || test $(date +%s) -gt $timeout + do : + done +}