On Fri, Nov 6, 2015 at 3:58 AM, <larsxschneider@xxxxxxxxx> wrote: > 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 <larsxschneider@xxxxxxxxx> > --- > 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? > 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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html