From nobody Tue Feb 10 10:02:56 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1F53F10A3C for ; Sun, 25 Feb 2024 13:04:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708866256; cv=none; b=GXU5zfjLwqeL+a0O5/LEYk73pnH2faqplkvwCrtLXJg3QllbeRc5aD4H1ADWMfoVgBwp5bsFTt9i5AHFOjzyKIcKu0HM/8QK6taCiiSupO9cm7F82nzz3taMhBPkVVApf0WiwH1uU8nF85tw8FdM3imVzXrYDP0RFQfKXC0daqo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708866256; c=relaxed/simple; bh=T4MmkKHM/NoFIeBDbfWyu70AGnNA1CXbMKM4l72JipA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=d/B7ashHPIZNFE2ZJ3IASMZMiNiLPlVj4Ue/CaqF+NyDecB0PTPyktGoNR/ZpXMVlMwu8qXJwUybvZNSlDmd329eHcAJd50U1UUjWJjH3eYgCHgh7YbnSxG+EQOh5LReAJvFhSTeA9d6+7zSqbDGlP1Ha4CLmBLv5D0XvtnWmxU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=naW5tanY; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="naW5tanY" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EE3A1C433C7; Sun, 25 Feb 2024 13:04:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1708866255; bh=T4MmkKHM/NoFIeBDbfWyu70AGnNA1CXbMKM4l72JipA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=naW5tanY8HzDtSqCubuatFScJ+cNuIcxGxBdH0JLXjaGF5dSYOUadnzt4tQWEVCfj QkMZU8gLhRdgkAGZqFp5IqPn/r57/p4jo4niSYLZyKG51tlOlJLRR8RQGdsb7gwmIz TGpyZDi0YOey5aQ1KGu/QBOYtbwDnaJVBcUSZcLwDjwrMyAddXJY99y1uQ4aGxn3Sg J4T9/D8v/usl62J1hRuAMmaVCLkpJ1X2NRIrOTYR0Q7sKfOoE4iAX7p31pRuHZ6qXo B350ICmj8H9KriJmviOUND+mS+nLftTyeSaLugUjFf62v6Gs1w89A49l0UgBoGSL9B YUPzZnxn8DhBA== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v3 04/13] selftests: mptcp: print test results with colors Date: Sun, 25 Feb 2024 21:03:52 +0800 Message-Id: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Geliang Tang The helper mptcp_lib_verify_listener_events() will be added latter in mptcp_lib.sh, and be used by mptcp_join.sh and userspace_pm.sh. The former prints colored output while the latter is not. It makes sense to unify them. This patch uses mptcp_lib_print_ok(), _warn(), _err() and _info() helpers in scripts diag.sh, mptcp_connect.sh, mptcp_sockopt.sh, pm_netlink.sh, simult_flows.sh and userspace_pm.sh to print test results with colors. Having colors helps to quickly identify issues when looking at a long list of output logs and results. Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/diag.sh | 12 ++++---- .../selftests/net/mptcp/mptcp_connect.sh | 28 ++++++++++--------- .../selftests/net/mptcp/mptcp_sockopt.sh | 16 +++++------ .../testing/selftests/net/mptcp/pm_netlink.sh | 3 +- .../selftests/net/mptcp/simult_flows.sh | 4 +-- .../selftests/net/mptcp/userspace_pm.sh | 13 +++------ 6 files changed, 37 insertions(+), 39 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/diag.sh b/tools/testing/self= tests/net/mptcp/diag.sh index aa3fb808fc6d..f9f62a8f41e3 100755 --- a/tools/testing/selftests/net/mptcp/diag.sh +++ b/tools/testing/selftests/net/mptcp/diag.sh @@ -58,15 +58,15 @@ __chk_nr() printf "%-50s" "$msg" if [ "$nr" !=3D "$expected" ]; then if [ "$nr" =3D "$skip" ] && ! mptcp_lib_expect_all_features; then - echo "[SKIP] Feature probably not supported" + mptcp_lib_print_warn "[SKIP] Feature probably not supported" mptcp_lib_result_skip "${msg}" else - echo "[FAIL] expected $expected found $nr" + mptcp_lib_print_err "[FAIL] expected $expected found $nr" mptcp_lib_result_fail "${msg}" ret=3D$test_cnt fi else - echo "[ OK ]" + mptcp_lib_print_ok "[ OK ]" mptcp_lib_result_pass "${msg}" fi test_cnt=3D$((test_cnt+1)) @@ -116,15 +116,15 @@ wait_msk_nr() =20 printf "%-50s" "$msg" if [ $i -ge $timeout ]; then - echo "[FAIL] timeout while expecting $expected max $max last $nr" + mptcp_lib_print_err "[FAIL] timeout while expecting $expected max $max l= ast $nr" mptcp_lib_result_fail "${msg} # timeout" ret=3D$test_cnt elif [ $nr !=3D $expected ]; then - echo "[FAIL] expected $expected found $nr" + mptcp_lib_print_err "[FAIL] expected $expected found $nr" mptcp_lib_result_fail "${msg} # unexpected result" ret=3D$test_cnt else - echo "[ OK ]" + mptcp_lib_print_ok "[ OK ]" mptcp_lib_result_pass "${msg}" fi test_cnt=3D$((test_cnt+1)) diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_connect.sh index 72be905bab1f..c7483902026b 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh @@ -254,7 +254,8 @@ check_mptcp_disabled() =20 # net.mptcp.enabled should be enabled by default if [ "$(ip netns exec ${disabled_ns} sysctl net.mptcp.enabled | awk '{ pr= int $3 }')" -ne 1 ]; then - echo -e "net.mptcp.enabled sysctl is not 1 by default\t\t\t [FAIL]" + echo -n -e "net.mptcp.enabled sysctl is not 1 by default" + mptcp_lib_print_err "\t\t\t [FAIL]" mptcp_lib_result_fail "net.mptcp.enabled sysctl is not 1 by default" ret=3D1 return 1 @@ -267,13 +268,15 @@ check_mptcp_disabled() mptcp_lib_ns_exit "${disabled_ns}" =20 if [ ${err} -eq 0 ]; then - echo -e "New MPTCP socket cannot be blocked via sysctl\t\t\t [FAIL]" + echo -n -e "New MPTCP socket cannot be blocked via sysctl" + mptcp_lib_print_err "\t\t\t [FAIL]" mptcp_lib_result_fail "New MPTCP socket cannot be blocked via sysctl" ret=3D1 return 1 fi =20 - echo -e "New MPTCP socket can be blocked via sysctl\t\t\t [ OK ]" + echo -n -e "New MPTCP socket can be blocked via sysctl" + mptcp_lib_print_ok "\t\t\t [ OK ]" mptcp_lib_result_pass "New MPTCP socket can be blocked via sysctl" return 0 } @@ -503,7 +506,7 @@ do_transfer() fi =20 if [ $retc -eq 0 ] && [ $rets -eq 0 ]; then - printf "[ OK ]" + mptcp_lib_print_ok "[ OK ]" mptcp_lib_result_pass "${TEST_GROUP}: ${result_msg}" else mptcp_lib_result_fail "${TEST_GROUP}: ${result_msg}" @@ -534,7 +537,6 @@ do_transfer() "${expect_ackrx}" "${stat_ackrx_now_l}" fi =20 - echo cat "$capout" [ $retc -eq 0 ] && [ $rets -eq 0 ] } @@ -708,7 +710,7 @@ EOF return fi =20 - echo "INFO: test $msg" + mptcp_lib_print_info "INFO: test $msg" =20 TEST_COUNT=3D10000 local extra_args=3D"-o TRANSPARENT" @@ -721,12 +723,12 @@ EOF ip -net "$listener_ns" route del local $local_addr/0 dev lo table 100 =20 if [ $lret -ne 0 ]; then - echo "FAIL: $msg, mptcp connection error" 1>&2 + mptcp_lib_print_err "FAIL: $msg, mptcp connection error" 1>&2 ret=3D$lret return 1 fi =20 - echo "PASS: $msg" + mptcp_lib_print_ok "PASS: $msg" return 0 } =20 @@ -735,7 +737,7 @@ run_tests_peekmode() local peekmode=3D"$1" =20 TEST_GROUP=3D"peek mode: ${peekmode}" - echo "INFO: with peek mode: ${peekmode}" + mptcp_lib_print_info "INFO: with peek mode: ${peekmode}" run_tests_lo "$ns1" "$ns1" 10.0.1.1 1 "-P ${peekmode}" run_tests_lo "$ns1" "$ns1" dead:beef:1::1 1 "-P ${peekmode}" } @@ -750,7 +752,7 @@ run_tests_mptfo() return fi =20 - echo "INFO: with MPTFO start" + mptcp_lib_print_info "INFO: with MPTFO start" ip netns exec "$ns1" sysctl -q net.ipv4.tcp_fastopen=3D2 ip netns exec "$ns2" sysctl -q net.ipv4.tcp_fastopen=3D1 =20 @@ -762,7 +764,7 @@ run_tests_mptfo() =20 ip netns exec "$ns1" sysctl -q net.ipv4.tcp_fastopen=3D0 ip netns exec "$ns2" sysctl -q net.ipv4.tcp_fastopen=3D0 - echo "INFO: with MPTFO end" + mptcp_lib_print_info "INFO: with MPTFO end" } =20 run_tests_disconnect() @@ -786,7 +788,7 @@ run_tests_disconnect() cin_disconnect=3D"$old_cin" connect_per_transfer=3D3 =20 - echo "INFO: disconnect" + mptcp_lib_print_info "INFO: disconnect" run_tests_lo "$ns1" "$ns1" 10.0.1.1 1 "-I 3 -i $old_cin" run_tests_lo "$ns1" "$ns1" dead:beef:1::1 1 "-I 3 -i $old_cin" =20 @@ -835,7 +837,7 @@ check_mptcp_disabled =20 stop_if_error "The kernel configuration is not valid for MPTCP" =20 -echo "INFO: validating network environment with pings" +mptcp_lib_print_info "INFO: validating network environment with pings" for sender in "$ns1" "$ns2" "$ns3" "$ns4";do do_ping "$ns1" $sender 10.0.1.1 do_ping "$ns1" $sender dead:beef:1::1 diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_sockopt.sh index f84185b5dc9f..cfa0cfb918f4 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh @@ -218,7 +218,7 @@ do_mptcp_sockopt_tests() local lret=3D0 =20 if ! mptcp_lib_kallsyms_has "mptcp_diag_fill_info$"; then - echo "INFO: MPTCP sockopt not supported: SKIP" + mptcp_lib_print_warn "INFO: MPTCP sockopt not supported: SKIP" mptcp_lib_result_skip "sockopt" return fi @@ -228,7 +228,7 @@ do_mptcp_sockopt_tests() =20 printf "%-50s" "sockopt v4" if [ $lret -ne 0 ]; then - echo "FAIL: SOL_MPTCP getsockopt" 1>&2 + mptcp_lib_print_err "FAIL: SOL_MPTCP getsockopt" mptcp_lib_result_fail "sockopt v4" ret=3D$lret return @@ -241,7 +241,7 @@ do_mptcp_sockopt_tests() =20 printf "%-50s" "sockopt v6" if [ $lret -ne 0 ]; then - echo "FAIL: SOL_MPTCP getsockopt (ipv6)" 1>&2 + mptcp_lib_print_err "FAIL: SOL_MPTCP getsockopt (ipv6)" mptcp_lib_result_fail "sockopt v6" ret=3D$lret return @@ -274,13 +274,13 @@ do_tcpinq_test() local lret=3D$? if [ $lret -ne 0 ];then ret=3D$lret - echo "FAIL: mptcp_inq $*" 1>&2 + mptcp_lib_print_err "FAIL: mptcp_inq $*" 1>&2 mptcp_lib_result_fail "TCP_INQ: $*" return $lret fi mptcp_lib_print_ok "[ OK ]" =20 - echo "PASS: TCP_INQ cmsg/ioctl $*" + mptcp_lib_print_info "PASS: TCP_INQ cmsg/ioctl $*" mptcp_lib_result_pass "TCP_INQ: $*" return $lret } @@ -290,7 +290,7 @@ do_tcpinq_tests() local lret=3D0 =20 if ! mptcp_lib_kallsyms_has "mptcp_ioctl$"; then - echo "INFO: TCP_INQ not supported: SKIP" + mptcp_lib_print_warn "INFO: TCP_INQ not supported: SKIP" mptcp_lib_result_skip "TCP_INQ" return fi @@ -327,12 +327,12 @@ run_tests $ns1 $ns2 10.0.1.1 run_tests $ns1 $ns2 dead:beef:1::1 =20 if [ $ret -eq 0 ];then - echo "PASS: all packets had packet mark set" + mptcp_lib_print_info "PASS: all packets had packet mark set" fi =20 do_mptcp_sockopt_tests if [ $ret -eq 0 ];then - echo "PASS: SOL_MPTCP getsockopt has expected information" + mptcp_lib_print_info "PASS: SOL_MPTCP getsockopt has expected information" fi =20 do_tcpinq_tests diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testin= g/selftests/net/mptcp/pm_netlink.sh index 427fc5c70b3c..68fad278ac59 100755 --- a/tools/testing/selftests/net/mptcp/pm_netlink.sh +++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh @@ -189,7 +189,8 @@ subflow,backup,fullmesh 10.0.1.1" " (backup,fu= llmesh)" else for st in fullmesh nofullmesh backup,fullmesh; do st=3D" (${st})" - printf "%-50s%s\n" "${st}" "[SKIP]" + printf "%-50s" "${st}" + mptcp_lib_print_warn "[SKIP]" mptcp_lib_result_skip "${st}" done fi diff --git a/tools/testing/selftests/net/mptcp/simult_flows.sh b/tools/test= ing/selftests/net/mptcp/simult_flows.sh index 58cfdaf1db25..79cb377ee0bd 100755 --- a/tools/testing/selftests/net/mptcp/simult_flows.sh +++ b/tools/testing/selftests/net/mptcp/simult_flows.sh @@ -187,12 +187,12 @@ do_transfer() printf "%-16s" " max $max_time " if [ $retc -eq 0 ] && [ $rets -eq 0 ] && \ [ $cmpc -eq 0 ] && [ $cmps -eq 0 ]; then - echo "[ OK ]" + mptcp_lib_print_ok "[ OK ]" cat "$capout" return 0 fi =20 - echo " [FAIL]" + mptcp_lib_print_err " [FAIL]" echo "client exit code $retc, server $rets" 1>&2 echo -e "\nnetns ${ns3} socket stat for $port:" 1>&2 ip netns exec ${ns3} ss -nita 1>&2 -o "sport =3D :$port" diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/test= ing/selftests/net/mptcp/userspace_pm.sh index b0cce8f065d8..33bbb0d5807f 100755 --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh @@ -61,7 +61,7 @@ _printf() { =20 print_title() { - _printf "INFO: %s\n" "${1}" + mptcp_lib_print_info "INFO: ${1}" } =20 # $1: test name @@ -72,27 +72,22 @@ print_test() _printf "%-68s" "${test_name}" } =20 -print_results() -{ - _printf "[%s]\n" "${1}" -} - test_pass() { - print_results " OK " + mptcp_lib_print_ok "[ OK ]" mptcp_lib_result_pass "${test_name}" } =20 test_skip() { - print_results "SKIP" + mptcp_lib_print_warn "[SKIP]" mptcp_lib_result_skip "${test_name}" } =20 # $1: msg test_fail() { - print_results "FAIL" + mptcp_lib_print_err "[FAIL]${1:+ ${*}}" ret=3D1 =20 if [ -n "${1}" ]; then --=20 2.40.1