From: Geliang Tang <[email protected]>

This patch adds a new helper chk_cestab_nr() to check the current
established connections counter MIB_CURRESTAB. Set the newly added
variables cestab_ns1 and cestab_ns2 to indicate how many connections
are expected in ns1 or ns2.

Invoke check_cestab() to check the counter during the connection in
do_transfer() and invoke chk_cestab_nr() to re-check it when the
connection closed. These checks are embedded in add_tests().

Signed-off-by: Geliang Tang <[email protected]>
Acked-by: Paolo Abeni <[email protected]>
Reviewed-by: Matthieu Baerts <[email protected]>
Signed-off-by: Matthieu Baerts <[email protected]>
---
 tools/testing/selftests/net/mptcp/mptcp_join.sh | 46 ++++++++++++++++++++++---
 1 file changed, 41 insertions(+), 5 deletions(-)

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh 
b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index 87590a43b50d..3a5b63026191 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -56,6 +56,8 @@ unset FAILING_LINKS
 unset test_linkfail
 unset addr_nr_ns1
 unset addr_nr_ns2
+unset cestab_ns1
+unset cestab_ns2
 unset sflags
 unset fastclose
 unset fullmesh
@@ -976,6 +978,34 @@ pm_nl_set_endpoint()
        fi
 }
 
+chk_cestab_nr()
+{
+       local ns=$1
+       local cestab=$2
+       local count
+
+       print_check "cestab $cestab"
+       count=$(mptcp_lib_get_counter ${ns} "MPTcpExtMPCurrEstab")
+       if [ -z "$count" ]; then
+               print_skip
+       elif [ "$count" != "$cestab" ]; then
+               fail_test "got $count current establish[s] expected $cestab"
+       else
+               print_ok
+       fi
+}
+
+# $1 namespace 1, $2 namespace 2
+check_cestab()
+{
+       if [ -n "${cestab_ns1}" ]; then
+               chk_cestab_nr ${1} ${cestab_ns1}
+       fi
+       if [ -n "${cestab_ns2}" ]; then
+               chk_cestab_nr ${2} ${cestab_ns2}
+       fi
+}
+
 do_transfer()
 {
        local listener_ns="$1"
@@ -1089,6 +1119,7 @@ do_transfer()
        local cpid=$!
 
        pm_nl_set_endpoint $listener_ns $connector_ns $connect_addr
+       check_cestab $listener_ns $connector_ns
 
        wait $cpid
        local retc=$?
@@ -2477,47 +2508,52 @@ add_tests()
        if reset "add single subflow"; then
                pm_nl_set_limits $ns1 0 1
                pm_nl_set_limits $ns2 0 1
-               addr_nr_ns2=1 speed=slow \
+               addr_nr_ns2=1 speed=slow cestab_ns2=1 \
                        run_tests $ns1 $ns2 10.0.1.1
                chk_join_nr 1 1 1
+               chk_cestab_nr $ns2 0
        fi
 
        # add signal address
        if reset "add signal address"; then
                pm_nl_set_limits $ns1 0 1
                pm_nl_set_limits $ns2 1 1
-               addr_nr_ns1=1 speed=slow \
+               addr_nr_ns1=1 speed=slow cestab_ns1=1 \
                        run_tests $ns1 $ns2 10.0.1.1
                chk_join_nr 1 1 1
                chk_add_nr 1 1
+               chk_cestab_nr $ns1 0
        fi
 
        # add multiple subflows
        if reset "add multiple subflows"; then
                pm_nl_set_limits $ns1 0 2
                pm_nl_set_limits $ns2 0 2
-               addr_nr_ns2=2 speed=slow \
+               addr_nr_ns2=2 speed=slow cestab_ns2=1 \
                        run_tests $ns1 $ns2 10.0.1.1
                chk_join_nr 2 2 2
+               chk_cestab_nr $ns2 0
        fi
 
        # add multiple subflows IPv6
        if reset "add multiple subflows IPv6"; then
                pm_nl_set_limits $ns1 0 2
                pm_nl_set_limits $ns2 0 2
-               addr_nr_ns2=2 speed=slow \
+               addr_nr_ns2=2 speed=slow cestab_ns2=1 \
                        run_tests $ns1 $ns2 dead:beef:1::1
                chk_join_nr 2 2 2
+               chk_cestab_nr $ns2 0
        fi
 
        # add multiple addresses IPv6
        if reset "add multiple addresses IPv6"; then
                pm_nl_set_limits $ns1 0 2
                pm_nl_set_limits $ns2 2 2
-               addr_nr_ns1=2 speed=slow \
+               addr_nr_ns1=2 speed=slow cestab_ns1=1 \
                        run_tests $ns1 $ns2 dead:beef:1::1
                chk_join_nr 2 2 2
                chk_add_nr 2 2
+               chk_cestab_nr $ns1 0
        fi
 }
 

-- 
2.43.0


Reply via email to