diff --git a/test/lib/context b/test/lib/context index 43b00dd..ee6b683 100644 --- a/test/lib/context +++ b/test/lib/context @@ -63,9 +63,7 @@ EOF echo "ssh -F ${__ssh} ${__name}" > "${__enter}" # Wait for the guest to be booted and accepting connections - while ! ssh -F "${__ssh}" "${__name}" :; do - sleep 0.1 - done + wait_for ssh -F "${__ssh}" "${__name}" : } # context_teardown() - Remove a context (leave log files intact) diff --git a/test/lib/util b/test/lib/util index dee6c8d..c1b3262 100755 --- a/test/lib/util +++ b/test/lib/util @@ -123,3 +123,11 @@ get_info_cols() { __j=$((__j + 1)) done } + +# wait_for() - Retry a command until it succeeds +# $@: Command to run +wait_for() { + while ! "$@"; do + sleep 0.1 || sleep 1 + done +}