From: Jiri Pirko <jiri@xxxxxxxxxx> 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@xxxxxxxxxx> --- 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 +} + cmd_jq() { local cmd=$1 -- 2.44.0