selftests: mptcp: add mptcp_lib_check_output helper
authorGeliang Tang <tanggeliang@kylinos.cn>
Fri, 1 Mar 2024 18:18:33 +0000 (19:18 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 4 Mar 2024 13:07:46 +0000 (13:07 +0000)
Extract the main part of check() in pm_netlink.sh into a new helper
named mptcp_lib_check_output in mptcp_lib.sh.

This helper will be used for userspace dump addresses tests.

Co-developed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Reviewed-by: Mat Martineau <martineau@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
tools/testing/selftests/net/mptcp/mptcp_lib.sh
tools/testing/selftests/net/mptcp/pm_netlink.sh

index 108a1e12436c68af538e04fa7bc3830e4e02d433..438f557aac90ce8f223dd3a55cc8ca04f825732c 100644 (file)
@@ -319,3 +319,26 @@ mptcp_lib_wait_local_port_listen() {
                sleep 0.1
        done
 }
+
+mptcp_lib_check_output() {
+       local err="${1}"
+       local cmd="${2}"
+       local expected="${3}"
+       local cmd_ret=0
+       local out
+
+       if ! out=$(${cmd} 2>"${err}"); then
+               cmd_ret=${?}
+       fi
+
+       if [ ${cmd_ret} -ne 0 ]; then
+               mptcp_lib_print_err "[FAIL] command execution '${cmd}' stderr"
+               cat "${err}"
+               return 2
+       elif [ "${out}" = "${expected}" ]; then
+               return 0
+       else
+               mptcp_lib_print_err "[FAIL] expected '${expected}' got '${out}'"
+               return 1
+       fi
+}
index ebfefae71e136008701829bc3d528d18a763fd0a..705106d60db5a58f4f86fda57261187417aef1d9 100755 (executable)
@@ -54,21 +54,17 @@ check()
        local cmd="$1"
        local expected="$2"
        local msg="$3"
-       local out=`$cmd 2>$err`
-       local cmd_ret=$?
+       local rc=0
 
        printf "%-50s" "$msg"
-       if [ $cmd_ret -ne 0 ]; then
-               echo "[FAIL] command execution '$cmd' stderr "
-               cat $err
-               mptcp_lib_result_fail "${msg} # error ${cmd_ret}"
+       mptcp_lib_check_output "${err}" "${cmd}" "${expected}" || rc=${?}
+       if [ ${rc} -eq 2 ]; then
+               mptcp_lib_result_fail "${msg} # error ${rc}"
                ret=1
-       elif [ "$out" = "$expected" ]; then
-               echo "[ OK ]"
+       elif [ ${rc} -eq 0 ]; then
+               mptcp_lib_print_ok "[ OK ]"
                mptcp_lib_result_pass "${msg}"
-       else
-               echo -n "[FAIL] "
-               echo "expected '$expected' got '$out'"
+       elif [ ${rc} -eq 1 ]; then
                mptcp_lib_result_fail "${msg} # different output"
                ret=1
        fi