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@xxxxxxxxx> > Signed-off-by: Petr Machata <petrm@xxxxxxxxxx> > Reviewed-by: Benjamin Poirier <bpoirier@xxxxxxxxxx> > --- > 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 > + if ((current_time - start_time > timeout_ms)); then > echo -n "$out" > return 1 > fi > + > + $sleep_cmd > done > } > > +busywait() > +{ > + local timeout_ms=$1; shift > + > + loopy_wait : "$timeout_ms" "$@" > +} > + > cleanup_ns() > { > local ns="" > -- > 2.43.0 > Reviewed-by: Hangbin Liu <liuhangbin@xxxxxxxxx>