From 05a2c7ae3c7bb7bb67ed0294efd9f3151da08aa3 Mon Sep 17 00:00:00 2001 From: David Gibson Date: Mon, 26 Sep 2022 20:43:36 +1000 Subject: test: Add wait_for() shell helper Add a shell helper function to wait for some command to succeed - typically a test for something to be done by a background process. Use it in the context code which waits for the guest to respond to ssh-over-vsock connections. Signed-off-by: David Gibson Signed-off-by: Stefano Brivio --- test/lib/context | 4 +--- test/lib/util | 8 ++++++++ 2 files changed, 9 insertions(+), 3 deletions(-) (limited to 'test/lib') 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 +} -- cgit v1.2.3