]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
selftests: net: Add on/off checks for non-fixed features of interface
authorAbhinav Jain <jain.abhinav177@gmail.com>
Wed, 21 Aug 2024 17:19:02 +0000 (22:49 +0530)
committerJakub Kicinski <kuba@kernel.org>
Thu, 22 Aug 2024 23:56:06 +0000 (16:56 -0700)
Implement on/off testing for all non-fixed features via while loop.

Signed-off-by: Abhinav Jain <jain.abhinav177@gmail.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20240821171903.118324-3-jain.abhinav177@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/net/netdevice.sh

index 999d72b6670c2c511956c85294a42fe953c1f000..f7752e1ebe22d253a0a912d641b0f068c4aee294 100755 (executable)
@@ -124,7 +124,40 @@ 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%:*}"
+
+               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" "$VALUE"
+               if [ $? -eq 0 ]; then
+                       echo "PASS: $netdev: Restore feature $feature" \
+                               "to initial state $VALUE"
+               else
+                       echo "FAIL: $netdev: Failed to restore feature" \
+                               "$feature to initial state $VALUE"
+               fi
+
+       done < "$TMP_ETHTOOL_FEATURES"
+
        rm "$TMP_ETHTOOL_FEATURES"
 
        kci_netdev_ethtool_test 74 'dump' "ethtool -d $netdev"