selftests: mptcp: reuse linkfail to make given size files
authorGeliang Tang <geliang.tang@suse.com>
Fri, 4 Mar 2022 19:36:32 +0000 (11:36 -0800)
committerJakub Kicinski <kuba@kernel.org>
Sat, 5 Mar 2022 05:54:30 +0000 (21:54 -0800)
This patch reused the test_linkfail values above 2 to make test files with
the given sizes (KB) for both the client side and the server side. It's
useful for the test cases using different file sizes.

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

index 84c2128..1fda29d 100755 (executable)
@@ -459,7 +459,7 @@ do_transfer()
                local_addr="0.0.0.0"
        fi
 
-       if [ "$test_link_fail" -eq 2 ];then
+       if [ "$test_link_fail" -gt 1 ];then
                timeout ${timeout_test} \
                        ip netns exec ${listener_ns} \
                                ./mptcp_connect -t ${timeout_poll} -l -p $port -s ${srv_proto} \
@@ -479,13 +479,19 @@ do_transfer()
                        ip netns exec ${connector_ns} \
                                ./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \
                                        $extra_args $connect_addr < "$cin" > "$cout" &
-       else
+       elif [ "$test_link_fail" -eq 1 ] || [ "$test_link_fail" -eq 2 ];then
                ( cat "$cinfail" ; sleep 2; link_failure $listener_ns ; cat "$cinfail" ) | \
                        tee "$cinsent" | \
                        timeout ${timeout_test} \
                                ip netns exec ${connector_ns} \
                                        ./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \
                                                $extra_args $connect_addr > "$cout" &
+       else
+               cat "$cinfail" | tee "$cinsent" | \
+                       timeout ${timeout_test} \
+                               ip netns exec ${connector_ns} \
+                                       ./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \
+                                               $extra_args $connect_addr > "$cout" &
        fi
        cpid=$!
 
@@ -645,7 +651,7 @@ do_transfer()
                return 1
        fi
 
-       if [ "$test_link_fail" -eq 2 ];then
+       if [ "$test_link_fail" -gt 1 ];then
                check_transfer $sinfail $cout "file received by client"
        else
                check_transfer $sin $cout "file received by client"
@@ -690,9 +696,18 @@ run_tests()
        speed="${7:-fast}"
        sflags="${8:-""}"
 
+       # The values above 2 are reused to make test files
+       # with the given sizes (KB)
+       if [ "$test_linkfail" -gt 2 ]; then
+               size=$test_linkfail
+
+               if [ -z "$cinfail" ]; then
+                       cinfail=$(mktemp)
+               fi
+               make_file "$cinfail" "client" $size
        # create the input file for the failure test when
        # the first failure test run
-       if [ "$test_linkfail" -ne 0 -a -z "$cinfail" ]; then
+       elif [ "$test_linkfail" -ne 0 -a -z "$cinfail" ]; then
                # the client file must be considerably larger
                # of the maximum expected cwin value, or the
                # link utilization will be not predicable
@@ -705,7 +720,14 @@ run_tests()
                make_file "$cinfail" "client" $size
        fi
 
-       if [ "$test_linkfail" -eq 2 -a -z "$sinfail" ]; then
+       if [ "$test_linkfail" -gt 2 ]; then
+               size=$test_linkfail
+
+               if [ -z "$sinfail" ]; then
+                       sinfail=$(mktemp)
+               fi
+               make_file "$sinfail" "server" $size
+       elif [ "$test_linkfail" -eq 2 -a -z "$sinfail" ]; then
                size=$((RANDOM%16))
                size=$((size+1))
                size=$((size*2048))