]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
selftests: drivers: hw: move to KTAP output
authorIoana Ciornei <ioana.ciornei@nxp.com>
Mon, 30 Mar 2026 15:29:31 +0000 (18:29 +0300)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 2 Apr 2026 10:11:04 +0000 (12:11 +0200)
Update the ethtool_rmon.sh test so that it uses the KTAP format for its
output. This is achieved by using the helpers found in ktap_helpers.sh.
An example output can be found below.

 $ ./ethtool_rmon.sh endpmac3 endpmac4
 TAP version 13
 1..14
 ok 1 ethtool_rmon.rx-pkts64to64
 ok 2 ethtool_rmon.rx-pkts65to127
 ok 3 ethtool_rmon.rx-pkts128to255
 ok 4 ethtool_rmon.rx-pkts256to511
 ok 5 ethtool_rmon.rx-pkts512to1023
 ok 6 ethtool_rmon.rx-pkts1024to1518
 ok 7 ethtool_rmon.rx-pkts1519to10240
 ok 8 ethtool_rmon.tx-pkts64to64
 ok 9 ethtool_rmon.tx-pkts65to127
 ok 10 ethtool_rmon.tx-pkts128to255
 ok 11 ethtool_rmon.tx-pkts256to511
 ok 12 ethtool_rmon.tx-pkts512to1023
 ok 13 ethtool_rmon.tx-pkts1024to1518
 ok 14 ethtool_rmon.tx-pkts1519to10240
 # Totals: pass:14 fail:0 xfail:0 xpass:0 skip:0 error:0

Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Reviewed-by: Petr Machata <petrm@nvidia.com>
Link: https://patch.msgid.link/20260330152933.2195885-8-ioana.ciornei@nxp.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
tools/testing/selftests/drivers/net/hw/ethtool_rmon.sh

index f290ce1832f12b16ad847dc12f143355d1f77497..ed81bdc3353690f6df8861832d1f5ed795f9c60d 100755 (executable)
@@ -11,10 +11,12 @@ ALL_TESTS="
 NUM_NETIFS=2
 lib_dir=$(dirname "$0")
 source "$lib_dir"/../../../net/forwarding/lib.sh
+source "$lib_dir"/../../../kselftest/ktap_helpers.sh
 
 UINT32_MAX=$((2**32 - 1))
 ETH_FCS_LEN=4
 ETH_HLEN=$((6+6+2))
+TEST_NAME=$(basename "$0" .sh)
 
 declare -A netif_mtu
 
@@ -76,29 +78,28 @@ rmon_histogram()
        local nbuckets=0
        local step=
 
-       RET=0
-
        while read -r -a bucket; do
-               step="$set-pkts${bucket[0]}to${bucket[1]} on $iface"
+               step="$set-pkts${bucket[0]}to${bucket[1]}"
 
                for if in "$iface" "$neigh"; do
                        if ! ensure_mtu "$if" "${bucket[0]}"; then
-                               log_test_xfail "$if does not support the required MTU for $step"
+                               ktap_print_msg "$if does not support the required MTU for $step"
+                               ktap_test_xfail "$TEST_NAME.$step"
                                return
                        fi
                done
 
                if ! bucket_test "$iface" "$neigh" "$set" "$nbuckets" "${bucket[0]}"; then
-                       check_err 1 "$step failed"
+                       ktap_test_fail "$TEST_NAME.$step"
                        return 1
                fi
-               log_test "$step"
+               ktap_test_pass "$TEST_NAME.$step"
                nbuckets=$((nbuckets + 1))
        done < <(ethtool --json -S "$iface" --groups rmon | \
                jq -r ".[0].rmon[\"${set}-pktsNtoM\"][]|[.low, .high]|@tsv" 2>/dev/null)
 
        if [ "$nbuckets" -eq 0 ]; then
-               log_test_xfail "$iface does not support $set histogram counters"
+               ktap_print_msg "$iface does not support $set histogram counters"
                return
        fi
 }
@@ -139,9 +140,16 @@ cleanup()
 check_ethtool_counter_group_support
 trap cleanup EXIT
 
+bucket_count=$(ethtool --json -S "${NETIFS[p1]}" --groups rmon | \
+       jq -r '.[0].rmon |
+               "\((."rx-pktsNtoM" | length) +
+                  (."tx-pktsNtoM" | length))"')
+ktap_print_header
+ktap_set_plan "$bucket_count"
+
 setup_prepare
 setup_wait
 
 tests_run
 
-exit "$EXIT_STATUS"
+ktap_finished