selftests: mptcp: join: correctly check for no RST
authorMatthieu Baerts <matttbe@kernel.org>
Wed, 18 Oct 2023 18:23:52 +0000 (11:23 -0700)
committerJakub Kicinski <kuba@kernel.org>
Thu, 19 Oct 2023 16:09:59 +0000 (09:09 -0700)
The commit mentioned below was more tolerant with the number of RST seen
during a test because in some uncontrollable situations, multiple RST
can be generated.

But it was not taking into account the case where no RST are expected:
this validation was then no longer reporting issues for the 0 RST case
because it is not possible to have less than 0 RST in the counter. This
patch fixes the issue by adding a specific condition.

Fixes: 6bf41020b72b ("selftests: mptcp: update and extend fastclose test-cases")
Cc: stable@vger.kernel.org
Reviewed-by: Mat Martineau <martineau@kernel.org>
Signed-off-by: Matthieu Baerts <matttbe@kernel.org>
Signed-off-by: Mat Martineau <martineau@kernel.org>
Link: https://lore.kernel.org/r/20231018-send-net-20231018-v1-1-17ecb002e41d@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/net/mptcp/mptcp_join.sh

index ee1f89a..2795367 100755 (executable)
@@ -1432,7 +1432,9 @@ chk_rst_nr()
        count=$(get_counter ${ns_tx} "MPTcpExtMPRstTx")
        if [ -z "$count" ]; then
                print_skip
-       elif [ $count -lt $rst_tx ]; then
+       # accept more rst than expected except if we don't expect any
+       elif { [ $rst_tx -ne 0 ] && [ $count -lt $rst_tx ]; } ||
+            { [ $rst_tx -eq 0 ] && [ $count -ne 0 ]; }; then
                fail_test "got $count MP_RST[s] TX expected $rst_tx"
        else
                print_ok
@@ -1442,7 +1444,9 @@ chk_rst_nr()
        count=$(get_counter ${ns_rx} "MPTcpExtMPRstRx")
        if [ -z "$count" ]; then
                print_skip
-       elif [ "$count" -lt "$rst_rx" ]; then
+       # accept more rst than expected except if we don't expect any
+       elif { [ $rst_rx -ne 0 ] && [ $count -lt $rst_rx ]; } ||
+            { [ $rst_rx -eq 0 ] && [ $count -ne 0 ]; }; then
                fail_test "got $count MP_RST[s] RX expected $rst_rx"
        else
                print_ok