Skip to content

Commit cc3e7ee

Browse files
pmachataPaolo Abeni
authored andcommitted
selftests: ETS: Use defer for test cleanup
Use the defer framework to schedule cleanups as soon as the command is executed. Signed-off-by: Petr Machata <[email protected]> Signed-off-by: Paolo Abeni <[email protected]>
1 parent a1b3741 commit cc3e7ee

File tree

4 files changed

+50
-78
lines changed

4 files changed

+50
-78
lines changed

tools/testing/selftests/drivers/net/mlxsw/sch_ets.sh

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ switch_create()
2121
# Create a bottleneck so that the DWRR process can kick in.
2222
tc qdisc replace dev $swp2 root handle 3: tbf rate 1gbit \
2323
burst 128K limit 1G
24+
defer tc qdisc del dev $swp2 root handle 3:
2425

2526
ets_switch_create
2627

@@ -30,37 +31,34 @@ switch_create()
3031
# for the DWRR process.
3132
devlink_port_pool_th_save $swp1 0
3233
devlink_port_pool_th_set $swp1 0 12
34+
defer devlink_port_pool_th_restore $swp1 0
35+
3336
devlink_tc_bind_pool_th_save $swp1 0 ingress
3437
devlink_tc_bind_pool_th_set $swp1 0 ingress 0 12
38+
defer devlink_tc_bind_pool_th_restore $swp1 0 ingress
39+
3540
devlink_port_pool_th_save $swp2 4
3641
devlink_port_pool_th_set $swp2 4 12
42+
defer devlink_port_pool_th_restore $swp2 4
43+
3744
devlink_tc_bind_pool_th_save $swp2 7 egress
3845
devlink_tc_bind_pool_th_set $swp2 7 egress 4 5
46+
defer devlink_tc_bind_pool_th_restore $swp2 7 egress
47+
3948
devlink_tc_bind_pool_th_save $swp2 6 egress
4049
devlink_tc_bind_pool_th_set $swp2 6 egress 4 5
50+
defer devlink_tc_bind_pool_th_restore $swp2 6 egress
51+
4152
devlink_tc_bind_pool_th_save $swp2 5 egress
4253
devlink_tc_bind_pool_th_set $swp2 5 egress 4 5
54+
defer devlink_tc_bind_pool_th_restore $swp2 5 egress
4355

4456
# Note: sch_ets_core.sh uses VLAN ingress-qos-map to assign packet
4557
# priorities at $swp1 based on their 802.1p headers. ingress-qos-map is
4658
# not offloaded by mlxsw as of this writing, but the mapping used is
4759
# 1:1, which is the mapping currently hard-coded by the driver.
4860
}
4961

50-
switch_destroy()
51-
{
52-
devlink_tc_bind_pool_th_restore $swp2 5 egress
53-
devlink_tc_bind_pool_th_restore $swp2 6 egress
54-
devlink_tc_bind_pool_th_restore $swp2 7 egress
55-
devlink_port_pool_th_restore $swp2 4
56-
devlink_tc_bind_pool_th_restore $swp1 0 ingress
57-
devlink_port_pool_th_restore $swp1 0
58-
59-
ets_switch_destroy
60-
61-
tc qdisc del dev $swp2 root handle 3:
62-
}
63-
6462
# Callback from sch_ets_tests.sh
6563
collect_stats()
6664
{

tools/testing/selftests/net/forwarding/sch_ets.sh

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,10 @@ switch_create()
2424
# Create a bottleneck so that the DWRR process can kick in.
2525
tc qdisc add dev $swp2 root handle 1: tbf \
2626
rate 1Gbit burst 1Mbit latency 100ms
27+
defer tc qdisc del dev $swp2 root
2728
PARENT="parent 1:"
2829
}
2930

30-
switch_destroy()
31-
{
32-
ets_switch_destroy
33-
tc qdisc del dev $swp2 root
34-
}
35-
3631
# Callback from sch_ets_tests.sh
3732
collect_stats()
3833
{

tools/testing/selftests/net/forwarding/sch_ets_core.sh

Lines changed: 30 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -166,89 +166,78 @@ h1_create()
166166
local i;
167167

168168
simple_if_init $h1
169+
defer simple_if_fini $h1
170+
169171
mtu_set $h1 9900
172+
defer mtu_restore $h1
173+
170174
for i in {0..2}; do
171175
vlan_create $h1 1$i v$h1 $(sip $i)/28
176+
defer vlan_destroy $h1 1$i
172177
ip link set dev $h1.1$i type vlan egress 0:$i
173178
done
174179
}
175180

176-
h1_destroy()
177-
{
178-
local i
179-
180-
for i in {0..2}; do
181-
vlan_destroy $h1 1$i
182-
done
183-
mtu_restore $h1
184-
simple_if_fini $h1
185-
}
186-
187181
h2_create()
188182
{
189183
local i
190184

191185
simple_if_init $h2
192-
mtu_set $h2 9900
193-
for i in {0..2}; do
194-
vlan_create $h2 1$i v$h2 $(dip $i)/28
195-
done
196-
}
186+
defer simple_if_fini $h2
197187

198-
h2_destroy()
199-
{
200-
local i
188+
mtu_set $h2 9900
189+
defer mtu_restore $h2
201190

202191
for i in {0..2}; do
203-
vlan_destroy $h2 1$i
192+
vlan_create $h2 1$i v$h2 $(dip $i)/28
193+
defer vlan_destroy $h2 1$i
204194
done
205-
mtu_restore $h2
206-
simple_if_fini $h2
207195
}
208196

209197
ets_switch_create()
210198
{
211199
local i
212200

213201
ip link set dev $swp1 up
202+
defer ip link set dev $swp1 down
203+
214204
mtu_set $swp1 9900
205+
defer mtu_restore $swp1
215206

216207
ip link set dev $swp2 up
208+
defer ip link set dev $swp2 down
209+
217210
mtu_set $swp2 9900
211+
defer mtu_restore $swp2
218212

219213
for i in {0..2}; do
220214
vlan_create $swp1 1$i
215+
defer vlan_destroy $swp1 1$i
221216
ip link set dev $swp1.1$i type vlan ingress 0:0 1:1 2:2
222217

223218
vlan_create $swp2 1$i
219+
defer vlan_destroy $swp2 1$i
224220

225221
ip link add dev br1$i type bridge
222+
defer ip link del dev br1$i
223+
226224
ip link set dev $swp1.1$i master br1$i
225+
defer ip link set dev $swp1.1$i nomaster
226+
227227
ip link set dev $swp2.1$i master br1$i
228+
defer ip link set dev $swp2.1$i nomaster
228229

229230
ip link set dev br1$i up
230-
ip link set dev $swp1.1$i up
231-
ip link set dev $swp2.1$i up
232-
done
233-
}
231+
defer ip link set dev br1$i down
234232

235-
ets_switch_destroy()
236-
{
237-
local i
238-
239-
ets_delete_qdisc
233+
ip link set dev $swp1.1$i up
234+
defer ip link set dev $swp1.1$i down
240235

241-
for i in {0..2}; do
242-
ip link del dev br1$i
243-
vlan_destroy $swp2 1$i
244-
vlan_destroy $swp1 1$i
236+
ip link set dev $swp2.1$i up
237+
defer ip link set dev $swp2.1$i down
245238
done
246239

247-
mtu_restore $swp2
248-
ip link set dev $swp2 down
249-
250-
mtu_restore $swp1
251-
ip link set dev $swp1 down
240+
defer ets_delete_qdisc
252241
}
253242

254243
setup_prepare()
@@ -263,23 +252,13 @@ setup_prepare()
263252
hut=$h2
264253

265254
vrf_prepare
255+
defer vrf_cleanup
266256

267257
h1_create
268258
h2_create
269259
switch_create
270260
}
271261

272-
cleanup()
273-
{
274-
pre_cleanup
275-
276-
switch_destroy
277-
h2_destroy
278-
h1_destroy
279-
280-
vrf_cleanup
281-
}
282-
283262
ping_ipv4()
284263
{
285264
ping_test $h1.10 $(dip 0) " vlan 10"

tools/testing/selftests/net/forwarding/sch_ets_tests.sh

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ __ets_dwrr_test()
9090

9191
for stream in ${streams[@]}; do
9292
ets_start_traffic $stream
93+
defer stop_traffic $!
9394
done
9495

9596
sleep 10
@@ -120,25 +121,24 @@ __ets_dwrr_test()
120121
${d[0]} ${d[$i]}
121122
fi
122123
done
123-
124-
for stream in ${streams[@]}; do
125-
stop_traffic
126-
done
127124
}
128125

129126
ets_dwrr_test_012()
130127
{
131-
__ets_dwrr_test 0 1 2
128+
in_defer_scope \
129+
__ets_dwrr_test 0 1 2
132130
}
133131

134132
ets_dwrr_test_01()
135133
{
136-
__ets_dwrr_test 0 1
134+
in_defer_scope \
135+
__ets_dwrr_test 0 1
137136
}
138137

139138
ets_dwrr_test_12()
140139
{
141-
__ets_dwrr_test 1 2
140+
in_defer_scope \
141+
__ets_dwrr_test 1 2
142142
}
143143

144144
ets_qdisc_setup()

0 commit comments

Comments
 (0)