The SKIP return should be used for cases where tooling of the machine under
test is lacking. For cases where HW is lacking, the appropriate outcome is
XFAIL.
This is the case with ethtool_rmon and mlxsw_lib. For these, introduce a
new helper, log_test_xfail().
Do the same for router_mpath_nh_lib. Note that it will be fixed using a
more reusable way in a following patch.
For the two resource_scale selftests, the log should simply not be written,
because there is no problem.
Cc: Tobias Waldekranz <tobias@waldekranz.com>
Signed-off-by: Petr Machata <petrm@nvidia.com>
Link: https://lore.kernel.org/r/3d668d8fb6fa0d9eeb47ce6d9e54114348c7c179.1711464583.git.petrm@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 
                for if in $iface $neigh; do
                        if ! ensure_mtu $if ${bucket[0]}; then
-                               log_test_skip "$if does not support the required MTU for $step"
+                               log_test_xfail "$if does not support the required MTU for $step"
                                return
                        fi
                done
                jq -r ".[0].rmon[\"${set}-pktsNtoM\"][]|[.low, .high]|@tsv" 2>/dev/null)
 
        if [ $nbuckets -eq 0 ]; then
-               log_test_skip "$iface does not support $set histogram counters"
+               log_test_xfail "$iface does not support $set histogram counters"
                return
        fi
 }
 
        local src=$1; shift
 
        if ! mlxsw_on_spectrum "$rev"; then
-               log_test_skip $src:$caller "(Spectrum-$rev only)"
+               log_test_xfail $src:$caller "(Spectrum-$rev only)"
                return 1
        fi
 }
 
                RET=0
                target=$(${current_test}_get_target "$should_fail")
                if ((target == 0)); then
-                       log_test_skip "'$current_test' should_fail=$should_fail test"
                        continue
                fi
 
 
                        RET=0
                        target=$(${current_test}_get_target "$should_fail")
                        if ((target == 0)); then
-                               log_test_skip "'$current_test' [$profile] should_fail=$should_fail test"
                                continue
                        fi
                        ${current_test}_setup_prepare
 
        return 0
 }
 
+log_test_xfail()
+{
+       local test_name=$1
+       local opt_str=$2
+
+       printf "TEST: %-60s  [XFAIL]\n" "$test_name $opt_str"
+       return 0
+}
+
 log_info()
 {
        local msg=$1
 
                nh_stats_do_test "HW $what" "$nh1_id" "$nh2_id" "$group_id" \
                                 nh_stats_get_hw "${mz[@]}"
        elif [[ $kind == veth ]]; then
-               log_test_skip "HW stats not offloaded on veth topology"
+               log_test_xfail "HW stats not offloaded on veth topology"
        fi
 }