Fri, Apr 12, 2024 at 10:43:40PM CEST, benjamin.poir...@gmail.com wrote:
>On 2024-04-12 17:13 +0200, Jiri Pirko wrote:
>> From: Jiri Pirko <j...@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 <j...@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!


Reply via email to