Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

selftests: extract common functions in ethtool-common.sh

Factor out some useful functions so that they can be reused
by other ethtool-netdevsim scripts.

Signed-off-by: Antonio Cardace <acardace@redhat.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Antonio Cardace and committed by
Jakub Kicinski
fbb8531e a7fc6db0

+71 -61
+69
tools/testing/selftests/drivers/net/netdevsim/ethtool-common.sh
··· 1 + #!/bin/bash 2 + # SPDX-License-Identifier: GPL-2.0-only 3 + 4 + NSIM_ID=$((RANDOM % 1024)) 5 + NSIM_DEV_SYS=/sys/bus/netdevsim/devices/netdevsim$NSIM_ID 6 + NSIM_DEV_DFS=/sys/kernel/debug/netdevsim/netdevsim$NSIM_ID/ports/0 7 + NSIM_NETDEV= 8 + num_passes=0 9 + num_errors=0 10 + 11 + function cleanup_nsim { 12 + if [ -e $NSIM_DEV_SYS ]; then 13 + echo $NSIM_ID > /sys/bus/netdevsim/del_device 14 + fi 15 + } 16 + 17 + function cleanup { 18 + cleanup_nsim 19 + } 20 + 21 + trap cleanup EXIT 22 + 23 + function get_netdev_name { 24 + local -n old=$1 25 + 26 + new=$(ls /sys/class/net) 27 + 28 + for netdev in $new; do 29 + for check in $old; do 30 + [ $netdev == $check ] && break 31 + done 32 + 33 + if [ $netdev != $check ]; then 34 + echo $netdev 35 + break 36 + fi 37 + done 38 + } 39 + 40 + function check { 41 + local code=$1 42 + local str=$2 43 + local exp_str=$3 44 + 45 + if [ $code -ne 0 ]; then 46 + ((num_errors++)) 47 + return 48 + fi 49 + 50 + if [ "$str" != "$exp_str" ]; then 51 + echo -e "Expected: '$exp_str', got '$str'" 52 + ((num_errors++)) 53 + return 54 + fi 55 + 56 + ((num_passes++)) 57 + } 58 + 59 + function make_netdev { 60 + # Make a netdevsim 61 + old_netdevs=$(ls /sys/class/net) 62 + 63 + if ! $(lsmod | grep -q netdevsim); then 64 + modprobe netdevsim 65 + fi 66 + 67 + echo $NSIM_ID > /sys/bus/netdevsim/new_device 68 + echo `get_netdev_name old_netdevs` 69 + }
+2 -61
tools/testing/selftests/drivers/net/netdevsim/ethtool-pause.sh
··· 1 1 #!/bin/bash 2 2 # SPDX-License-Identifier: GPL-2.0-only 3 3 4 - NSIM_ID=$((RANDOM % 1024)) 5 - NSIM_DEV_SYS=/sys/bus/netdevsim/devices/netdevsim$NSIM_ID 6 - NSIM_DEV_DFS=/sys/kernel/debug/netdevsim/netdevsim$NSIM_ID/ports/0 7 - NSIM_NETDEV= 8 - num_passes=0 9 - num_errors=0 10 - 11 - function cleanup_nsim { 12 - if [ -e $NSIM_DEV_SYS ]; then 13 - echo $NSIM_ID > /sys/bus/netdevsim/del_device 14 - fi 15 - } 16 - 17 - function cleanup { 18 - cleanup_nsim 19 - } 20 - 21 - trap cleanup EXIT 22 - 23 - function get_netdev_name { 24 - local -n old=$1 25 - 26 - new=$(ls /sys/class/net) 27 - 28 - for netdev in $new; do 29 - for check in $old; do 30 - [ $netdev == $check ] && break 31 - done 32 - 33 - if [ $netdev != $check ]; then 34 - echo $netdev 35 - break 36 - fi 37 - done 38 - } 39 - 40 - function check { 41 - local code=$1 42 - local str=$2 43 - local exp_str=$3 44 - 45 - if [ $code -ne 0 ]; then 46 - ((num_errors++)) 47 - return 48 - fi 49 - 50 - if [ "$str" != "$exp_str" ]; then 51 - echo -e "Expected: '$exp_str', got '$str'" 52 - ((num_errors++)) 53 - return 54 - fi 55 - 56 - ((num_passes++)) 57 - } 4 + source ethtool-common.sh 58 5 59 6 # Bail if ethtool is too old 60 7 if ! ethtool -h | grep include-stat 2>&1 >/dev/null; then ··· 9 62 exit 4 10 63 fi 11 64 12 - # Make a netdevsim 13 - old_netdevs=$(ls /sys/class/net) 14 - 15 - modprobe netdevsim 16 - echo $NSIM_ID > /sys/bus/netdevsim/new_device 17 - 18 - NSIM_NETDEV=`get_netdev_name old_netdevs` 65 + NSIM_NETDEV=$(make_netdev) 19 66 20 67 set -o pipefail 21 68