On Fri, Apr 12, 2024 at 07:03:04PM +0200, Petr Machata wrote:
Bodies of busywait() and slowwait() functions are almost identical. Extract the common code into a helper, loopy_wait, and convert busywait() and slowwait() into trivial wrappers.
Moreover, the fact that slowwait() uses seconds for units is really not intuitive, and the comment does not help much. Instead make the unit part of the name of the argument to further clarify what units are expected.
Cc: Hangbin Liu liuhangbin@gmail.com Signed-off-by: Petr Machata petrm@nvidia.com Reviewed-by: Benjamin Poirier bpoirier@nvidia.com
tools/testing/selftests/net/forwarding/lib.sh | 22 ++----------------- tools/testing/selftests/net/lib.sh | 16 +++++++++++--- 2 files changed, 15 insertions(+), 23 deletions(-)
diff --git a/tools/testing/selftests/net/forwarding/lib.sh b/tools/testing/selftests/net/forwarding/lib.sh index 4103ed7afcde..658e4e7bf4b9 100644 --- a/tools/testing/selftests/net/forwarding/lib.sh +++ b/tools/testing/selftests/net/forwarding/lib.sh @@ -95,27 +95,9 @@ source "$net_forwarding_dir/../lib.sh" # timeout in seconds slowwait() {
- local timeout=$1; shift
- local timeout_sec=$1; shift
- local start_time="$(date -u +%s)"
- while true
- do
local out
out=$("$@")
local ret=$?
if ((!ret)); then
echo -n "$out"
return 0
fi
local current_time="$(date -u +%s)"
if ((current_time - start_time > timeout)); then
echo -n "$out"
return 1
fi
sleep 0.1
- done
- loopy_wait "sleep 0.1" "$((timeout_sec * 1000))" "$@"
} ############################################################################## diff --git a/tools/testing/selftests/net/lib.sh b/tools/testing/selftests/net/lib.sh index b7f7b8695165..c868c0aec121 100644 --- a/tools/testing/selftests/net/lib.sh +++ b/tools/testing/selftests/net/lib.sh @@ -58,9 +58,10 @@ ksft_exit_status_merge() $ksft_xfail $ksft_pass $ksft_skip $ksft_fail } -busywait() +loopy_wait() {
- local timeout=$1; shift
- local sleep_cmd=$1; shift
- local timeout_ms=$1; shift
local start_time="$(date -u +%s%3N)" while true @@ -74,13 +75,22 @@ busywait() fi local current_time="$(date -u +%s%3N)"
if ((current_time - start_time > timeout)); then
fiif ((current_time - start_time > timeout_ms)); then echo -n "$out" return 1
done$sleep_cmd
} +busywait() +{
- local timeout_ms=$1; shift
- loopy_wait : "$timeout_ms" "$@"
+}
cleanup_ns() { local ns="" -- 2.43.0
Reviewed-by: Hangbin Liu liuhangbin@gmail.com