A number of selftests run processes in the background and need to kill them
afterwards. Instead for everyone to open-code the kill / wait / redirect
mantra, add a helper in net/lib.sh. Convert existing open-code sites.

Signed-off-by: Petr Machata <pe...@nvidia.com>
Acked-by: Shuah Khan <sk...@linuxfoundation.org>
---

Notes:
CC: Shuah Khan <sh...@kernel.org>
CC: Benjamin Poirier <bpoir...@nvidia.com>
CC: Hangbin Liu <liuhang...@gmail.com>
CC: linux-kselftest@vger.kernel.org
CC: Jiri Pirko <j...@resnulli.us>
CC: Andrew Lunn <andrew+net...@lunn.ch>
---

 .../selftests/drivers/net/mlxsw/devlink_trap.sh      |  2 +-
 .../drivers/net/mlxsw/devlink_trap_l3_drops.sh       |  4 ++--
 .../drivers/net/mlxsw/devlink_trap_l3_exceptions.sh  | 12 ++++++------
 .../drivers/net/mlxsw/devlink_trap_tunnel_ipip.sh    |  4 ++--
 .../drivers/net/mlxsw/devlink_trap_tunnel_ipip6.sh   |  4 ++--
 .../drivers/net/mlxsw/devlink_trap_tunnel_vxlan.sh   |  4 ++--
 .../net/mlxsw/devlink_trap_tunnel_vxlan_ipv6.sh      |  4 ++--
 .../testing/selftests/drivers/net/mlxsw/tc_sample.sh |  4 ++--
 .../drivers/net/netdevsim/fib_notifications.sh       |  6 +++---
 tools/testing/selftests/net/drop_monitor_tests.sh    |  2 +-
 tools/testing/selftests/net/fib_tests.sh             |  8 ++++----
 .../testing/selftests/net/forwarding/devlink_lib.sh  |  2 +-
 tools/testing/selftests/net/forwarding/lib.sh        |  3 +--
 tools/testing/selftests/net/forwarding/tc_police.sh  |  8 ++++----
 tools/testing/selftests/net/lib.sh                   |  8 ++++++++
 15 files changed, 41 insertions(+), 34 deletions(-)

diff --git a/tools/testing/selftests/drivers/net/mlxsw/devlink_trap.sh 
b/tools/testing/selftests/drivers/net/mlxsw/devlink_trap.sh
index 89b55e946eed..36055279ba92 100755
--- a/tools/testing/selftests/drivers/net/mlxsw/devlink_trap.sh
+++ b/tools/testing/selftests/drivers/net/mlxsw/devlink_trap.sh
@@ -116,7 +116,7 @@ dev_del_test()
 
        log_test "Device delete"
 
-       kill $mz_pid && wait $mz_pid &> /dev/null
+       kill_process $mz_pid
 }
 
 trap cleanup EXIT
diff --git a/tools/testing/selftests/drivers/net/mlxsw/devlink_trap_l3_drops.sh 
b/tools/testing/selftests/drivers/net/mlxsw/devlink_trap_l3_drops.sh
index 160891dcb4bc..db5806d189bb 100755
--- a/tools/testing/selftests/drivers/net/mlxsw/devlink_trap_l3_drops.sh
+++ b/tools/testing/selftests/drivers/net/mlxsw/devlink_trap_l3_drops.sh
@@ -595,7 +595,7 @@ irif_disabled_test()
 
        log_test "Ingress RIF disabled"
 
-       kill $mz_pid && wait $mz_pid &> /dev/null
+       kill_process $mz_pid
        ip link set dev $rp1 nomaster
        __addr_add_del $rp1 add 192.0.2.2/24 2001:db8:1::2/64
        ip link del dev br0 type bridge
@@ -645,7 +645,7 @@ erif_disabled_test()
 
        log_test "Egress RIF disabled"
 
-       kill $mz_pid && wait $mz_pid &> /dev/null
+       kill_process $mz_pid
        __addr_add_del $rp1 add 192.0.2.2/24 2001:db8:1::2/64
        ip link del dev br0 type bridge
        devlink_trap_action_set $trap_name "drop"
diff --git 
a/tools/testing/selftests/drivers/net/mlxsw/devlink_trap_l3_exceptions.sh 
b/tools/testing/selftests/drivers/net/mlxsw/devlink_trap_l3_exceptions.sh
index 190c1b6b5365..5d6d88b600f0 100755
--- a/tools/testing/selftests/drivers/net/mlxsw/devlink_trap_l3_exceptions.sh
+++ b/tools/testing/selftests/drivers/net/mlxsw/devlink_trap_l3_exceptions.sh
@@ -202,7 +202,7 @@ mtu_value_is_too_small_test()
 
        mtu_restore $rp2
 
-       kill $mz_pid && wait $mz_pid &> /dev/null
+       kill_process $mz_pid
        tc filter del dev $h1 ingress protocol ip pref 1 handle 101 flower
 }
 
@@ -235,7 +235,7 @@ __ttl_value_is_too_small_test()
 
        log_test "TTL value is too small: TTL=$ttl_val"
 
-       kill $mz_pid && wait $mz_pid &> /dev/null
+       kill_process $mz_pid
        tc filter del dev $h1 ingress protocol ip pref 1 handle 101 flower
 }
 
@@ -299,7 +299,7 @@ __mc_reverse_path_forwarding_test()
 
        log_test "Multicast reverse path forwarding: $desc"
 
-       kill $mz_pid && wait $mz_pid &> /dev/null
+       kill_process $mz_pid
        tc filter del dev $rp2 egress protocol $proto pref 1 handle 101 flower
 }
 
@@ -347,7 +347,7 @@ __reject_route_test()
 
        log_test "Reject route: $desc"
 
-       kill $mz_pid && wait $mz_pid &> /dev/null
+       kill_process $mz_pid
        ip route del unreachable $unreachable
        tc filter del dev $h1 ingress protocol $proto pref 1 handle 101 flower
 }
@@ -542,7 +542,7 @@ ipv4_lpm_miss_test()
 
        log_test "LPM miss: IPv4"
 
-       kill $mz_pid && wait $mz_pid &> /dev/null
+       kill_process $mz_pid
        vrf_without_routes_destroy
 }
 
@@ -569,7 +569,7 @@ ipv6_lpm_miss_test()
 
        log_test "LPM miss: IPv6"
 
-       kill $mz_pid && wait $mz_pid &> /dev/null
+       kill_process $mz_pid
        vrf_without_routes_destroy
 }
 
diff --git 
a/tools/testing/selftests/drivers/net/mlxsw/devlink_trap_tunnel_ipip.sh 
b/tools/testing/selftests/drivers/net/mlxsw/devlink_trap_tunnel_ipip.sh
index e9a82cae8c9a..4ac1dae92d0f 100755
--- a/tools/testing/selftests/drivers/net/mlxsw/devlink_trap_tunnel_ipip.sh
+++ b/tools/testing/selftests/drivers/net/mlxsw/devlink_trap_tunnel_ipip.sh
@@ -176,7 +176,7 @@ ecn_decap_test()
 
        log_test "$desc: Inner ECN is not ECT and outer is $ecn_desc"
 
-       kill $mz_pid && wait $mz_pid &> /dev/null
+       kill_process $mz_pid
        tc filter del dev $swp1 egress protocol ip pref 1 handle 101 flower
 }
 
@@ -207,7 +207,7 @@ no_matching_tunnel_test()
 
        log_test "$desc"
 
-       kill $mz_pid && wait $mz_pid &> /dev/null
+       kill_process $mz_pid
        tc filter del dev $swp1 egress protocol ip pref 1 handle 101 flower
 }
 
diff --git 
a/tools/testing/selftests/drivers/net/mlxsw/devlink_trap_tunnel_ipip6.sh 
b/tools/testing/selftests/drivers/net/mlxsw/devlink_trap_tunnel_ipip6.sh
index 878125041fc3..fce885184404 100755
--- a/tools/testing/selftests/drivers/net/mlxsw/devlink_trap_tunnel_ipip6.sh
+++ b/tools/testing/selftests/drivers/net/mlxsw/devlink_trap_tunnel_ipip6.sh
@@ -176,7 +176,7 @@ ecn_decap_test()
 
        log_test "$desc: Inner ECN is not ECT and outer is $ecn_desc"
 
-       kill $mz_pid && wait $mz_pid &> /dev/null
+       kill_process $mz_pid
        tc filter del dev $swp1 egress protocol ipv6 pref 1 handle 101 flower
 }
 
@@ -207,7 +207,7 @@ no_matching_tunnel_test()
 
        log_test "$desc"
 
-       kill $mz_pid && wait $mz_pid &> /dev/null
+       kill_process $mz_pid
        tc filter del dev $swp1 egress protocol ipv6 pref 1 handle 101 flower
 }
 
diff --git 
a/tools/testing/selftests/drivers/net/mlxsw/devlink_trap_tunnel_vxlan.sh 
b/tools/testing/selftests/drivers/net/mlxsw/devlink_trap_tunnel_vxlan.sh
index 5f6eb965cfd1..7aca8e5922cf 100755
--- a/tools/testing/selftests/drivers/net/mlxsw/devlink_trap_tunnel_vxlan.sh
+++ b/tools/testing/selftests/drivers/net/mlxsw/devlink_trap_tunnel_vxlan.sh
@@ -183,7 +183,7 @@ ecn_decap_test()
 
        log_test "$desc: Inner ECN is not ECT and outer is $ecn_desc"
 
-       kill $mz_pid && wait $mz_pid &> /dev/null
+       kill_process $mz_pid
        tc filter del dev $swp1 egress protocol ip pref 1 handle 101 flower
 }
 
@@ -253,7 +253,7 @@ corrupted_packet_test()
 
        log_test "$desc"
 
-       kill $mz_pid && wait $mz_pid &> /dev/null
+       kill_process $mz_pid
        tc filter del dev $swp1 egress protocol ip pref 1 handle 101 flower
 }
 
diff --git 
a/tools/testing/selftests/drivers/net/mlxsw/devlink_trap_tunnel_vxlan_ipv6.sh 
b/tools/testing/selftests/drivers/net/mlxsw/devlink_trap_tunnel_vxlan_ipv6.sh
index f6c16cbb6cf7..4599c331240b 100755
--- 
a/tools/testing/selftests/drivers/net/mlxsw/devlink_trap_tunnel_vxlan_ipv6.sh
+++ 
b/tools/testing/selftests/drivers/net/mlxsw/devlink_trap_tunnel_vxlan_ipv6.sh
@@ -188,7 +188,7 @@ ecn_decap_test()
 
        log_test "$desc: Inner ECN is not ECT and outer is $ecn_desc"
 
-       kill $mz_pid && wait $mz_pid &> /dev/null
+       kill_process $mz_pid
        tc filter del dev $swp1 egress protocol ipv6 pref 1 handle 101 flower
 }
 
@@ -262,7 +262,7 @@ corrupted_packet_test()
 
        log_test "$desc"
 
-       kill $mz_pid && wait $mz_pid &> /dev/null
+       kill_process $mz_pid
        tc filter del dev $swp1 egress protocol ipv6 pref 1 handle 101 flower
 }
 
diff --git a/tools/testing/selftests/drivers/net/mlxsw/tc_sample.sh 
b/tools/testing/selftests/drivers/net/mlxsw/tc_sample.sh
index 83a0210e7544..bc7ea2df49fb 100755
--- a/tools/testing/selftests/drivers/net/mlxsw/tc_sample.sh
+++ b/tools/testing/selftests/drivers/net/mlxsw/tc_sample.sh
@@ -218,7 +218,7 @@ psample_capture_start()
 
 psample_capture_stop()
 {
-       { kill %% && wait %%; } 2>/dev/null
+       kill_process %%
 }
 
 __tc_sample_rate_test()
@@ -499,7 +499,7 @@ tc_sample_md_out_tc_occ_test()
        backlog=$(tc -j -p -s qdisc show dev $rp2 | jq '.[0]["backlog"]')
 
        # Kill mausezahn.
-       { kill %% && wait %%; } 2>/dev/null
+       kill_process %%
 
        psample_capture_stop
 
diff --git a/tools/testing/selftests/drivers/net/netdevsim/fib_notifications.sh 
b/tools/testing/selftests/drivers/net/netdevsim/fib_notifications.sh
index 8d91191a098c..9896580c3d85 100755
--- a/tools/testing/selftests/drivers/net/netdevsim/fib_notifications.sh
+++ b/tools/testing/selftests/drivers/net/netdevsim/fib_notifications.sh
@@ -94,7 +94,7 @@ route_addition_check()
        sleep 1
        $IP route add $route dev dummy1
        sleep 1
-       kill %% && wait %% &> /dev/null
+       kill_process %%
 
        route_notify_check $outfile $expected_num_notifications $offload_failed
        rm -f $outfile
@@ -148,7 +148,7 @@ route_deletion_check()
        sleep 1
        $IP route del $route dev dummy1
        sleep 1
-       kill %% && wait %% &> /dev/null
+       kill_process %%
 
        route_notify_check $outfile $expected_num_notifications
        rm -f $outfile
@@ -191,7 +191,7 @@ route_replacement_check()
        sleep 1
        $IP route replace $route dev dummy2
        sleep 1
-       kill %% && wait %% &> /dev/null
+       kill_process %%
 
        route_notify_check $outfile $expected_num_notifications
        rm -f $outfile
diff --git a/tools/testing/selftests/net/drop_monitor_tests.sh 
b/tools/testing/selftests/net/drop_monitor_tests.sh
index 7c4818c971fc..507d0a82f5f0 100755
--- a/tools/testing/selftests/net/drop_monitor_tests.sh
+++ b/tools/testing/selftests/net/drop_monitor_tests.sh
@@ -77,7 +77,7 @@ sw_drops_test()
 
        rm ${dir}/packets.pcap
 
-       { kill %% && wait %%; } 2>/dev/null
+       kill_process %%
        timeout 5 dwdump -o sw -w ${dir}/packets.pcap
        (( $(tshark -r ${dir}/packets.pcap \
                -Y 'ip.dst == 192.0.2.10' 2> /dev/null | wc -l) == 0))
diff --git a/tools/testing/selftests/net/fib_tests.sh 
b/tools/testing/selftests/net/fib_tests.sh
index 5f3c28fc8624..3ea6f886a210 100755
--- a/tools/testing/selftests/net/fib_tests.sh
+++ b/tools/testing/selftests/net/fib_tests.sh
@@ -689,7 +689,7 @@ fib6_notify_test()
 
        log_test $ret 0 "ipv6 route add notify"
 
-       { kill %% && wait %%; } 2>/dev/null
+       kill_process %%
 
        #rm errors.txt
 
@@ -736,7 +736,7 @@ fib_notify_test()
 
        log_test $ret 0 "ipv4 route add notify"
 
-       { kill %% && wait %%; } 2>/dev/null
+       kill_process %%
 
        rm  errors.txt
 
@@ -2328,7 +2328,7 @@ ipv4_mangle_test()
        $IP route del table 123 172.16.101.0/24 dev veth1
        $IP rule del pref 100
 
-       { kill %% && wait %%; } 2>/dev/null
+       kill_process %%
        rm $tmp_file
 
        route_cleanup
@@ -2386,7 +2386,7 @@ ipv6_mangle_test()
        $IP -6 route del table 123 2001:db8:101::/64 dev veth1
        $IP -6 rule del pref 100
 
-       { kill %% && wait %%; } 2>/dev/null
+       kill_process %%
        rm $tmp_file
 
        route_cleanup
diff --git a/tools/testing/selftests/net/forwarding/devlink_lib.sh 
b/tools/testing/selftests/net/forwarding/devlink_lib.sh
index 62a05bca1e82..18afa89ebbcc 100644
--- a/tools/testing/selftests/net/forwarding/devlink_lib.sh
+++ b/tools/testing/selftests/net/forwarding/devlink_lib.sh
@@ -501,7 +501,7 @@ devlink_trap_drop_cleanup()
        local pref=$1; shift
        local handle=$1; shift
 
-       kill $mz_pid && wait $mz_pid &> /dev/null
+       kill_process $mz_pid
        tc filter del dev $dev egress protocol $proto pref $pref handle $handle 
flower
 }
 
diff --git a/tools/testing/selftests/net/forwarding/lib.sh 
b/tools/testing/selftests/net/forwarding/lib.sh
index 8625e3c99f55..7337f398f9cc 100644
--- a/tools/testing/selftests/net/forwarding/lib.sh
+++ b/tools/testing/selftests/net/forwarding/lib.sh
@@ -1574,8 +1574,7 @@ stop_traffic()
 {
        local pid=${1-%%}; shift
 
-       # Suppress noise from killing mausezahn.
-       { kill $pid && wait $pid; } 2>/dev/null
+       kill_process "$pid"
 }
 
 declare -A cappid
diff --git a/tools/testing/selftests/net/forwarding/tc_police.sh 
b/tools/testing/selftests/net/forwarding/tc_police.sh
index 5103f64a71d6..509fdedfcfa1 100755
--- a/tools/testing/selftests/net/forwarding/tc_police.sh
+++ b/tools/testing/selftests/net/forwarding/tc_police.sh
@@ -148,7 +148,7 @@ police_common_test()
 
        log_test "$test_name"
 
-       { kill %% && wait %%; } 2>/dev/null
+       kill_process %%
        tc filter del dev $h2 ingress protocol ip pref 1 handle 101 flower
 }
 
@@ -198,7 +198,7 @@ police_shared_common_test()
 
        log_test "$test_name"
 
-       { kill %% && wait %%; } 2>/dev/null
+       kill_process %%
 }
 
 police_shared_test()
@@ -278,7 +278,7 @@ police_mirror_common_test()
 
        log_test "$test_name"
 
-       { kill %% && wait %%; } 2>/dev/null
+       kill_process %%
        tc filter del dev $pol_if $dir protocol ip pref 1 handle 101 flower
        tc filter del dev $h3 ingress protocol ip pref 1 handle 101 flower
        tc filter del dev $h2 ingress protocol ip pref 1 handle 101 flower
@@ -320,7 +320,7 @@ police_pps_common_test()
 
        log_test "$test_name"
 
-       { kill %% && wait %%; } 2>/dev/null
+       kill_process %%
        tc filter del dev $h2 ingress protocol ip pref 1 handle 101 flower
 }
 
diff --git a/tools/testing/selftests/net/lib.sh 
b/tools/testing/selftests/net/lib.sh
index 6bcf5d13879d..24f63e45735d 100644
--- a/tools/testing/selftests/net/lib.sh
+++ b/tools/testing/selftests/net/lib.sh
@@ -434,3 +434,11 @@ xfail_on_veth()
                "$@"
        fi
 }
+
+kill_process()
+{
+       local pid=$1; shift
+
+       # Suppress noise from killing the process.
+       { kill $pid && wait $pid; } 2>/dev/null
+}
-- 
2.45.0


Reply via email to