Skip to content

Commit fa57032

Browse files
pmachatakuba-moo
authored andcommitted
selftests: net: lib.sh: Don't defer failed commands
Usually the autodefer helpers in lib.sh are expected to be run in context where success is the expected outcome. However when using them for feature detection, failure can legitimately occur. But the failed command still schedules a cleanup, which will likely fail again. Instead, only schedule deferred cleanup when the positive command succeeds. This way of organizing the cleanup has the added benefit that now the return code from these functions reflects whether the command passed. Signed-off-by: Petr Machata <[email protected]> Acked-by: Nikolay Aleksandrov <[email protected]> Link: https://patch.msgid.link/af10a5bb82ea11ead978cf903550089e006d7e70.1757004393.git.petrm@nvidia.com Signed-off-by: Jakub Kicinski <[email protected]>
1 parent ed07c8f commit fa57032

File tree

1 file changed

+16
-16
lines changed
  • tools/testing/selftests/net

1 file changed

+16
-16
lines changed

tools/testing/selftests/net/lib.sh

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -547,17 +547,17 @@ ip_link_add()
547547
{
548548
local name=$1; shift
549549

550-
ip link add name "$name" "$@"
551-
defer ip link del dev "$name"
550+
ip link add name "$name" "$@" && \
551+
defer ip link del dev "$name"
552552
}
553553

554554
ip_link_set_master()
555555
{
556556
local member=$1; shift
557557
local master=$1; shift
558558

559-
ip link set dev "$member" master "$master"
560-
defer ip link set dev "$member" nomaster
559+
ip link set dev "$member" master "$master" && \
560+
defer ip link set dev "$member" nomaster
561561
}
562562

563563
ip_link_set_addr()
@@ -566,8 +566,8 @@ ip_link_set_addr()
566566
local addr=$1; shift
567567

568568
local old_addr=$(mac_get "$name")
569-
ip link set dev "$name" address "$addr"
570-
defer ip link set dev "$name" address "$old_addr"
569+
ip link set dev "$name" address "$addr" && \
570+
defer ip link set dev "$name" address "$old_addr"
571571
}
572572

573573
ip_link_has_flag()
@@ -590,8 +590,8 @@ ip_link_set_up()
590590
local name=$1; shift
591591

592592
if ! ip_link_is_up "$name"; then
593-
ip link set dev "$name" up
594-
defer ip link set dev "$name" down
593+
ip link set dev "$name" up && \
594+
defer ip link set dev "$name" down
595595
fi
596596
}
597597

@@ -600,29 +600,29 @@ ip_link_set_down()
600600
local name=$1; shift
601601

602602
if ip_link_is_up "$name"; then
603-
ip link set dev "$name" down
604-
defer ip link set dev "$name" up
603+
ip link set dev "$name" down && \
604+
defer ip link set dev "$name" up
605605
fi
606606
}
607607

608608
ip_addr_add()
609609
{
610610
local name=$1; shift
611611

612-
ip addr add dev "$name" "$@"
613-
defer ip addr del dev "$name" "$@"
612+
ip addr add dev "$name" "$@" && \
613+
defer ip addr del dev "$name" "$@"
614614
}
615615

616616
ip_route_add()
617617
{
618-
ip route add "$@"
619-
defer ip route del "$@"
618+
ip route add "$@" && \
619+
defer ip route del "$@"
620620
}
621621

622622
bridge_vlan_add()
623623
{
624-
bridge vlan add "$@"
625-
defer bridge vlan del "$@"
624+
bridge vlan add "$@" && \
625+
defer bridge vlan del "$@"
626626
}
627627

628628
wait_local_port_listen()

0 commit comments

Comments
 (0)