On Thu, Aug 15, 2024 at 04:29:23PM +0530, Abhinav Jain wrote: > Implement on/off testing for all non-fixed features via while loop. > Save the initial state so that it can be restored after on/off checks. > > Signed-off-by: Abhinav Jain <jain.abhinav177@xxxxxxxxx> > --- > tools/testing/selftests/net/netdevice.sh | 37 +++++++++++++++++++++++- > 1 file changed, 36 insertions(+), 1 deletion(-) > > diff --git a/tools/testing/selftests/net/netdevice.sh b/tools/testing/selftests/net/netdevice.sh > index 0c32950fdd17..50f7b9d1163d 100755 > --- a/tools/testing/selftests/net/netdevice.sh > +++ b/tools/testing/selftests/net/netdevice.sh > @@ -124,7 +124,42 @@ kci_netdev_ethtool() > return 1 > fi > echo "PASS: $netdev: ethtool list features" > - #TODO for each non fixed features, try to turn them on/off > + > + while read -r FEATURE VALUE FIXED; do > + [ "$FEATURE" != "Features" ] || continue # Skip "Features" > + [ "$FIXED" != "[fixed]" ] || continue # Skip fixed features > + feature="${FEATURE%:*}" > + > + initial_state=$(ethtool -k "$netdev" | grep "$feature:" \ > + | awk '{print $2}') Hi Abhinav, Isn't the value being read into $initial_state here already present in $VALUE? > + ethtool --offload "$netdev" "$feature" off > + if [ $? -eq 0 ]; then > + echo "PASS: $netdev: Turned off feature: $feature" > + else > + echo "FAIL: $netdev: Failed to turn off feature:" \ > + "$feature" > + fi > + > + ethtool --offload "$netdev" "$feature" on > + if [ $? -eq 0 ]; then > + echo "PASS: $netdev: Turned on feature: $feature" > + else > + echo "FAIL: $netdev: Failed to turn on feature:" \ > + "$feature" > + fi > + > + #restore the feature to its initial state > + ethtool --offload "$netdev" "$feature" "$initial_state" > + if [ $? -eq 0 ]; then > + echo "PASS: $netdev: Restore feature $feature" \ > + "to initial state $initial_state" > + else > + echo "FAIL: $netdev: Failed to restore feature" \ > + "$feature to default $initial_state" > + fi > + > + done < "$TMP_ETHTOOL_FEATURES" > + > rm "$TMP_ETHTOOL_FEATURES" > > kci_netdev_ethtool_test 74 'dump' "ethtool -d $netdev" > -- > 2.34.1 > >