Message ID | 20240412151314.3365034-6-jiri@resnulli.us (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | selftests: virtio_net: introduce initial testing infrastructure | expand |
On 2024-04-12 17:13 +0200, Jiri Pirko wrote: > From: Jiri Pirko <jiri@nvidia.com> > > The existing setup_wait*() helper family check the status of the > interface to be up. Introduce wait_for_dev() to wait for the netdevice > to appear, for example after test script does manual device bind. > > Signed-off-by: Jiri Pirko <jiri@nvidia.com> > --- > tools/testing/selftests/net/forwarding/lib.sh | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > > diff --git a/tools/testing/selftests/net/forwarding/lib.sh b/tools/testing/selftests/net/forwarding/lib.sh > index 959183b516ce..74859f969997 100644 > --- a/tools/testing/selftests/net/forwarding/lib.sh > +++ b/tools/testing/selftests/net/forwarding/lib.sh > @@ -746,6 +746,25 @@ setup_wait() > sleep $WAIT_TIME > } > > +wait_for_dev() > +{ > + local dev=$1; shift > + local timeout=${1:-$WAIT_TIMEOUT}; shift > + local max_iterations=$(($timeout * 10)) > + > + for ((i = 1; i <= $max_iterations; ++i)); do > + ip link show dev $dev up &> /dev/null > + if [[ $? -ne 0 ]]; then > + sleep 0.1 > + else > + return 0 > + fi > + done > + > + log_test wait_for_dev ": Interface $dev did not appear." > + exit 1 > +} How about rewriting the function to make use of the `slowwait` helper as follows: wait_for_dev() { local dev=$1; shift local timeout=${1:-$WAIT_TIMEOUT}; shift slowwait $timeout ip link show dev $dev up &> /dev/null if (( $? )); then check_err 1 log_test wait_for_dev "Interface $dev did not appear." exit $EXIT_STATUS fi }
Fri, Apr 12, 2024 at 10:43:40PM CEST, benjamin.poirier@gmail.com wrote: >On 2024-04-12 17:13 +0200, Jiri Pirko wrote: >> From: Jiri Pirko <jiri@nvidia.com> >> >> The existing setup_wait*() helper family check the status of the >> interface to be up. Introduce wait_for_dev() to wait for the netdevice >> to appear, for example after test script does manual device bind. >> >> Signed-off-by: Jiri Pirko <jiri@nvidia.com> >> --- >> tools/testing/selftests/net/forwarding/lib.sh | 19 +++++++++++++++++++ >> 1 file changed, 19 insertions(+) >> >> diff --git a/tools/testing/selftests/net/forwarding/lib.sh b/tools/testing/selftests/net/forwarding/lib.sh >> index 959183b516ce..74859f969997 100644 >> --- a/tools/testing/selftests/net/forwarding/lib.sh >> +++ b/tools/testing/selftests/net/forwarding/lib.sh >> @@ -746,6 +746,25 @@ setup_wait() >> sleep $WAIT_TIME >> } >> >> +wait_for_dev() >> +{ >> + local dev=$1; shift >> + local timeout=${1:-$WAIT_TIMEOUT}; shift >> + local max_iterations=$(($timeout * 10)) >> + >> + for ((i = 1; i <= $max_iterations; ++i)); do >> + ip link show dev $dev up &> /dev/null >> + if [[ $? -ne 0 ]]; then >> + sleep 0.1 >> + else >> + return 0 >> + fi >> + done >> + >> + log_test wait_for_dev ": Interface $dev did not appear." >> + exit 1 >> +} > >How about rewriting the function to make use of the `slowwait` helper as >follows: > >wait_for_dev() >{ > local dev=$1; shift > local timeout=${1:-$WAIT_TIMEOUT}; shift > > slowwait $timeout ip link show dev $dev up &> /dev/null > if (( $? )); then > check_err 1 > log_test wait_for_dev "Interface $dev did not appear." > exit $EXIT_STATUS > fi >} Sure, will redo this. Thanks!
diff --git a/tools/testing/selftests/net/forwarding/lib.sh b/tools/testing/selftests/net/forwarding/lib.sh index 959183b516ce..74859f969997 100644 --- a/tools/testing/selftests/net/forwarding/lib.sh +++ b/tools/testing/selftests/net/forwarding/lib.sh @@ -746,6 +746,25 @@ setup_wait() sleep $WAIT_TIME } +wait_for_dev() +{ + local dev=$1; shift + local timeout=${1:-$WAIT_TIMEOUT}; shift + local max_iterations=$(($timeout * 10)) + + for ((i = 1; i <= $max_iterations; ++i)); do + ip link show dev $dev up &> /dev/null + if [[ $? -ne 0 ]]; then + sleep 0.1 + else + return 0 + fi + done + + log_test wait_for_dev ": Interface $dev did not appear." + exit 1 +} + cmd_jq() { local cmd=$1