summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorMatthieu Baerts <matthieu.baerts@tessares.net>2022-03-09 22:16:32 +0300
committerJakub Kicinski <kuba@kernel.org>2022-03-10 23:29:58 +0300
commit39aab88242a8ea63a32d3b199e01292e555e03c7 (patch)
tree04a8f624bf6cdf407fca03b88a2392740ed9d98e /tools
parentc7d49c033de057b88398915b0eb2df2484dc8166 (diff)
downloadlinux-39aab88242a8ea63a32d3b199e01292e555e03c7.tar.xz
selftests: mptcp: join: list failure at the end
With ~100 tests, it helps to have this summary at the end not to scroll to find which one has failed. It is especially interseting when looking at the output produced by the CI where the kernel logs from the serial are mixed together. Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net> Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'tools')
-rwxr-xr-xtools/testing/selftests/net/mptcp/mptcp_join.sh85
1 files changed, 55 insertions, 30 deletions
diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index 64261c3ca320..d3038922a0d2 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -22,6 +22,7 @@ init=0
declare -A all_tests
declare -a only_tests_ids
declare -a only_tests_names
+declare -A failed_tests
TEST_COUNT=0
TEST_NAME=""
nr_blank=40
@@ -251,6 +252,21 @@ reset_with_allow_join_id0()
ip netns exec $ns2 sysctl -q net.mptcp.allow_join_initial_addr_port=$ns2_enable
}
+fail_test()
+{
+ ret=1
+ failed_tests[${TEST_COUNT}]="${TEST_NAME}"
+}
+
+get_failed_tests_ids()
+{
+ # sorted
+ local i
+ for i in "${!failed_tests[@]}"; do
+ echo "${i}"
+ done | sort -n
+}
+
print_file_err()
{
ls -l "$1" 1>&2
@@ -272,7 +288,7 @@ check_transfer()
echo "[ FAIL ] $what does not match (in, out):"
print_file_err "$in"
print_file_err "$out"
- ret=1
+ fail_test
return 1
else
@@ -292,7 +308,7 @@ do_ping()
ip netns exec ${connector_ns} ping -q -c 1 $connect_addr >/dev/null
if [ $? -ne 0 ] ; then
echo "$listener_ns -> $connect_addr connectivity [ FAIL ]" 1>&2
- ret=1
+ fail_test
fi
}
@@ -541,7 +557,7 @@ pm_nl_check_endpoint()
echo "[ ok ]"
else
echo "[fail] expected '$expected_line' found '$line'"
- ret=1
+ fail_test
fi
}
@@ -795,7 +811,7 @@ do_transfer()
cat /tmp/${connector_ns}.out
cat "$capout"
- ret=1
+ fail_test
return 1
fi
@@ -920,7 +936,7 @@ chk_csum_nr()
if [ "$count" != $csum_ns1 -a $allow_multi_errors_ns1 -eq 0 ] ||
[ "$count" -lt $csum_ns1 -a $allow_multi_errors_ns1 -eq 1 ]; then
echo "[fail] got $count data checksum error[s] expected $csum_ns1"
- ret=1
+ fail_test
dump_stats=1
else
echo -n "[ ok ]"
@@ -931,7 +947,7 @@ chk_csum_nr()
if [ "$count" != $csum_ns2 -a $allow_multi_errors_ns2 -eq 0 ] ||
[ "$count" -lt $csum_ns2 -a $allow_multi_errors_ns2 -eq 1 ]; then
echo "[fail] got $count data checksum error[s] expected $csum_ns2"
- ret=1
+ fail_test
dump_stats=1
else
echo "[ ok ]"
@@ -951,7 +967,7 @@ chk_fail_nr()
[ -z "$count" ] && count=0
if [ "$count" != "$fail_tx" ]; then
echo "[fail] got $count MP_FAIL[s] TX expected $fail_tx"
- ret=1
+ fail_test
dump_stats=1
else
echo -n "[ ok ]"
@@ -962,7 +978,7 @@ chk_fail_nr()
[ -z "$count" ] && count=0
if [ "$count" != "$fail_rx" ]; then
echo "[fail] got $count MP_FAIL[s] RX expected $fail_rx"
- ret=1
+ fail_test
dump_stats=1
else
echo "[ ok ]"
@@ -983,7 +999,7 @@ chk_fclose_nr()
[ -z "$count" ] && count=0
if [ "$count" != "$fclose_tx" ]; then
echo "[fail] got $count MP_FASTCLOSE[s] TX expected $fclose_tx"
- ret=1
+ fail_test
dump_stats=1
else
echo -n "[ ok ]"
@@ -994,7 +1010,7 @@ chk_fclose_nr()
[ -z "$count" ] && count=0
if [ "$count" != "$fclose_rx" ]; then
echo "[fail] got $count MP_FASTCLOSE[s] RX expected $fclose_rx"
- ret=1
+ fail_test
dump_stats=1
else
echo "[ ok ]"
@@ -1025,7 +1041,7 @@ chk_rst_nr()
[ -z "$count" ] && count=0
if [ "$count" != "$rst_tx" ]; then
echo "[fail] got $count MP_RST[s] TX expected $rst_tx"
- ret=1
+ fail_test
dump_stats=1
else
echo -n "[ ok ]"
@@ -1036,7 +1052,7 @@ chk_rst_nr()
[ -z "$count" ] && count=0
if [ "$count" != "$rst_rx" ]; then
echo "[fail] got $count MP_RST[s] RX expected $rst_rx"
- ret=1
+ fail_test
dump_stats=1
else
echo -n "[ ok ]"
@@ -1071,7 +1087,7 @@ chk_join_nr()
[ -z "$count" ] && count=0
if [ "$count" != "$syn_nr" ]; then
echo "[fail] got $count JOIN[s] syn expected $syn_nr"
- ret=1
+ fail_test
dump_stats=1
else
echo -n "[ ok ]"
@@ -1089,7 +1105,7 @@ chk_join_nr()
echo -n "[ ok ]"
else
echo "[fail] got $count JOIN[s] synack expected $syn_ack_nr"
- ret=1
+ fail_test
dump_stats=1
fi
else
@@ -1101,7 +1117,7 @@ chk_join_nr()
[ -z "$count" ] && count=0
if [ "$count" != "$ack_nr" ]; then
echo "[fail] got $count JOIN[s] ack expected $ack_nr"
- ret=1
+ fail_test
dump_stats=1
else
echo "[ ok ]"
@@ -1141,7 +1157,7 @@ chk_stale_nr()
echo "[fail] got $stale_nr stale[s] $recover_nr recover[s], " \
" expected stale in range [$stale_min..$stale_max]," \
" stale-recover delta $stale_delta "
- ret=1
+ fail_test
dump_stats=1
else
echo "[ ok ]"
@@ -1178,7 +1194,7 @@ chk_add_nr()
# add addrs options, due to retransmissions
if [ "$count" != "$add_nr" ] && [ "$timeout" -gt 1 -o "$count" -lt "$add_nr" ]; then
echo "[fail] got $count ADD_ADDR[s] expected $add_nr"
- ret=1
+ fail_test
dump_stats=1
else
echo -n "[ ok ]"
@@ -1189,7 +1205,7 @@ chk_add_nr()
[ -z "$count" ] && count=0
if [ "$count" != "$echo_nr" ]; then
echo "[fail] got $count ADD_ADDR echo[s] expected $echo_nr"
- ret=1
+ fail_test
dump_stats=1
else
echo -n "[ ok ]"
@@ -1201,7 +1217,7 @@ chk_add_nr()
[ -z "$count" ] && count=0
if [ "$count" != "$port_nr" ]; then
echo "[fail] got $count ADD_ADDR[s] with a port-number expected $port_nr"
- ret=1
+ fail_test
dump_stats=1
else
echo "[ ok ]"
@@ -1214,7 +1230,7 @@ chk_add_nr()
if [ "$count" != "$syn_nr" ]; then
echo "[fail] got $count JOIN[s] syn with a different \
port-number expected $syn_nr"
- ret=1
+ fail_test
dump_stats=1
else
echo -n "[ ok ]"
@@ -1227,7 +1243,7 @@ chk_add_nr()
if [ "$count" != "$syn_ack_nr" ]; then
echo "[fail] got $count JOIN[s] synack with a different \
port-number expected $syn_ack_nr"
- ret=1
+ fail_test
dump_stats=1
else
echo -n "[ ok ]"
@@ -1240,7 +1256,7 @@ chk_add_nr()
if [ "$count" != "$ack_nr" ]; then
echo "[fail] got $count JOIN[s] ack with a different \
port-number expected $ack_nr"
- ret=1
+ fail_test
dump_stats=1
else
echo "[ ok ]"
@@ -1253,7 +1269,7 @@ chk_add_nr()
if [ "$count" != "$mis_syn_nr" ]; then
echo "[fail] got $count JOIN[s] syn with a mismatched \
port-number expected $mis_syn_nr"
- ret=1
+ fail_test
dump_stats=1
else
echo -n "[ ok ]"
@@ -1266,7 +1282,7 @@ chk_add_nr()
if [ "$count" != "$mis_ack_nr" ]; then
echo "[fail] got $count JOIN[s] ack with a mismatched \
port-number expected $mis_ack_nr"
- ret=1
+ fail_test
dump_stats=1
else
echo "[ ok ]"
@@ -1311,7 +1327,7 @@ chk_rm_nr()
[ -z "$count" ] && count=0
if [ "$count" != "$rm_addr_nr" ]; then
echo "[fail] got $count RM_ADDR[s] expected $rm_addr_nr"
- ret=1
+ fail_test
dump_stats=1
else
echo -n "[ ok ]"
@@ -1334,14 +1350,14 @@ chk_rm_nr()
echo "[ ok ] $suffix"
else
echo "[fail] got $count RM_SUBFLOW[s] expected in range [$rm_subflow_nr:$((rm_subflow_nr*2))]"
- ret=1
+ fail_test
dump_stats=1
fi
return
fi
if [ "$count" != "$rm_subflow_nr" ]; then
echo "[fail] got $count RM_SUBFLOW[s] expected $rm_subflow_nr"
- ret=1
+ fail_test
dump_stats=1
else
echo -n "[ ok ]"
@@ -1364,7 +1380,7 @@ chk_prio_nr()
[ -z "$count" ] && count=0
if [ "$count" != "$mp_prio_nr_tx" ]; then
echo "[fail] got $count MP_PRIO[s] TX expected $mp_prio_nr_tx"
- ret=1
+ fail_test
dump_stats=1
else
echo -n "[ ok ]"
@@ -1375,7 +1391,7 @@ chk_prio_nr()
[ -z "$count" ] && count=0
if [ "$count" != "$mp_prio_nr_rx" ]; then
echo "[fail] got $count MP_PRIO[s] RX expected $mp_prio_nr_rx"
- ret=1
+ fail_test
dump_stats=1
else
echo "[ ok ]"
@@ -1399,7 +1415,7 @@ chk_link_usage()
if [ $tx_rate -lt $((expected_rate - $tolerance)) -o \
$tx_rate -gt $((expected_rate + $tolerance)) ]; then
echo "[fail] got $tx_rate% usage, expected $expected_rate%"
- ret=1
+ fail_test
else
echo "[ ok ]"
fi
@@ -2616,4 +2632,13 @@ for subtests in "${tests[@]}"; do
"${subtests}"
done
+if [ ${ret} -ne 0 ]; then
+ echo
+ echo "${#failed_tests[@]} failure(s) has(ve) been detected:"
+ for i in $(get_failed_tests_ids); do
+ echo -e "\t- ${i}: ${failed_tests[${i}]}"
+ done
+ echo
+fi
+
exit $ret