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 <[email protected]>
---
Changes in v4:
- patch is added in this version so that ethtool_rmon.sh is converted to
  KTAP output

 .../selftests/drivers/net/hw/ethtool_rmon.sh  | 24 ++++++++++++-------
 1 file changed, 16 insertions(+), 8 deletions(-)

diff --git a/tools/testing/selftests/drivers/net/hw/ethtool_rmon.sh 
b/tools/testing/selftests/drivers/net/hw/ethtool_rmon.sh
index f290ce1832f1..ed81bdc33536 100755
--- a/tools/testing/selftests/drivers/net/hw/ethtool_rmon.sh
+++ b/tools/testing/selftests/drivers/net/hw/ethtool_rmon.sh
@@ -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
-- 
2.25.1


Reply via email to