Re: [PATCH v4 3/4] git-p4: retry kill/cleanup operations in tests with timeout
From: Eric Sunshine <hidden>
Date: 2016-06-15 23:07:12
On Fri, Nov 6, 2015 at 3:58 AM, [off-list ref] wrote:
quoted hunk ↗ jump to hunk
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 +retry_until_success() { + timeout=$(($(date +%s) + $RETRY_TIMEOUT)) + 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 +}
I'm confused by this. Patch 2/4 was already calling retry_until_fail(), but it's introduction seems to be here in patch 3/4. Am I missing something obvious?
quoted hunk ↗ jump to hunk
kill_p4d() { pid=$(cat "$pidfile") - # it had better exist for the first kill - kill $pid && - for i in 1 2 3 4 5 ; do - kill $pid >/dev/null 2>&1 || break - sleep 1 - done && + retry_until_fail kill $pid + retry_until_fail kill -9 $pid # complain if it would not die test_must_fail kill $pid >/dev/null 2>&1 && rm -rf "$db" "$cli" "$pidfile" &&@@ -153,8 +167,9 @@ kill_p4d() { } cleanup_git() { - rm -rf "$git" && - mkdir "$git" + retry_until_success rm -r "$git" + test_must_fail test -d "$git" && + retry_until_success mkdir "$git" } marshal_dump() { --2.5.1