selftests: mptcp: enhance userspace pm tests
authorGeliang Tang <geliang.tang@suse.com>
Wed, 30 Nov 2022 14:06:29 +0000 (15:06 +0100)
committerJakub Kicinski <kuba@kernel.org>
Fri, 2 Dec 2022 04:06:06 +0000 (20:06 -0800)
Some userspace pm tests failed since pm listener events have been added.
Now MPTCP_EVENT_LISTENER_CREATED event becomes the first item in the
events list like this:

 type:15,family:2,sport:10006,saddr4:0.0.0.0
 type:1,token:3701282876,server_side:1,family:2,saddr4:10.0.1.1,...

And no token value in this MPTCP_EVENT_LISTENER_CREATED event.

This patch fixes this by specifying the type 1 item to search for token
values.

Signed-off-by: Geliang Tang <geliang.tang@suse.com>
Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/net/mptcp/mptcp_join.sh
tools/testing/selftests/net/mptcp/userspace_pm.sh

index 2a402b3..f10ef65 100755 (executable)
@@ -830,7 +830,8 @@ do_transfer()
                        if [ $userspace_pm -eq 0 ]; then
                                pm_nl_add_endpoint $ns1 $addr flags signal
                        else
-                               tk=$(sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns1")
+                               tk=$(grep "type:1," "$evts_ns1" |
+                                    sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q')
                                ip netns exec ${listener_ns} ./pm_nl_ctl ann $addr token $tk id $id
                                sleep 1
                                ip netns exec ${listener_ns} ./pm_nl_ctl rem token $tk id $id
index 5dfc3ee..08a88ea 100755 (executable)
@@ -172,9 +172,10 @@ make_connection()
        client_serverside=$(sed --unbuffered -n 's/.*\(server_side:\)\([[:digit:]]*\).*$/\2/p;q'\
                                      "$client_evts")
        kill_wait $server_evts_pid
-       server_token=$(sed --unbuffered -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q' "$server_evts")
-       server_serverside=$(sed --unbuffered -n 's/.*\(server_side:\)\([[:digit:]]*\).*$/\2/p;q'\
-                                     "$server_evts")
+       server_token=$(grep "type:1," "$server_evts" |
+                      sed --unbuffered -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q')
+       server_serverside=$(grep "type:1," "$server_evts" |
+                           sed --unbuffered -n 's/.*\(server_side:\)\([[:digit:]]*\).*$/\2/p;q')
        rm -f "$client_evts" "$server_evts" "$file"
 
        if [ "$client_token" != "" ] && [ "$server_token" != "" ] && [ "$client_serverside" = 0 ] &&