If errexit is enabled ('set -e'), loopy_wait -- or busywait and others
using it -- will stop after the first failure.
Note that if the returned status of loopy_wait is checked, and even if
errexit is enabled, Bash will not stop at the first error.
Fixes: 25ae948b4478 ("selftests/net: add lib.sh")
Cc: stable@vger.kernel.org
Acked-by: Geliang Tang <geliang@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
---
tools/testing/selftests/net/lib.sh | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/tools/testing/selftests/net/lib.sh b/tools/testing/selftests/net/lib.sh
index edc030e81a46..a422e10d3d3a 100644
--- a/tools/testing/selftests/net/lib.sh
+++ b/tools/testing/selftests/net/lib.sh
@@ -67,9 +67,7 @@ loopy_wait()
while true
do
local out
- out=$("$@")
- local ret=$?
- if ((!ret)); then
+ if out=$("$@"); then
echo -n "$out"
return 0
fi
--
2.43.0
On Wed, Jun 05, 2024 at 11:21:16AM +0200, Matthieu Baerts (NGI0) wrote: > If errexit is enabled ('set -e'), loopy_wait -- or busywait and others > using it -- will stop after the first failure. > > Note that if the returned status of loopy_wait is checked, and even if > errexit is enabled, Bash will not stop at the first error. > > Fixes: 25ae948b4478 ("selftests/net: add lib.sh") Not sure if the fixes tag should be c5341bcc337c ("selftests: mlxsw: Add a self-test for port-default priority"), so the fixes could be backported to stable kernel for forwarding/lib.sh. Others looks good to me. Reviewed-by: Hangbin Liu <liuhangbin@gmail.com> > Cc: stable@vger.kernel.org > Acked-by: Geliang Tang <geliang@kernel.org> > Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org> > --- > tools/testing/selftests/net/lib.sh | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/tools/testing/selftests/net/lib.sh b/tools/testing/selftests/net/lib.sh > index edc030e81a46..a422e10d3d3a 100644 > --- a/tools/testing/selftests/net/lib.sh > +++ b/tools/testing/selftests/net/lib.sh > @@ -67,9 +67,7 @@ loopy_wait() > while true > do > local out > - out=$("$@") > - local ret=$? > - if ((!ret)); then > + if out=$("$@"); then > echo -n "$out" > return 0 > fi > > -- > 2.43.0 >
Hi Hangbin, Thank you for your reply! On 05/06/2024 11:44, Hangbin Liu wrote: > On Wed, Jun 05, 2024 at 11:21:16AM +0200, Matthieu Baerts (NGI0) wrote: >> If errexit is enabled ('set -e'), loopy_wait -- or busywait and others >> using it -- will stop after the first failure. >> >> Note that if the returned status of loopy_wait is checked, and even if >> errexit is enabled, Bash will not stop at the first error. >> >> Fixes: 25ae948b4478 ("selftests/net: add lib.sh") > > Not sure if the fixes tag should be c5341bcc337c ("selftests: mlxsw: Add a > self-test for port-default priority"), so the fixes could be backported to > stable kernel for forwarding/lib.sh. Good point, I didn't notice it was coming from there. I don't think that's needed: 'net/forwarding/lib.sh' is far from being compatible with 'errexit', please look at all the utilisations of '$?'. For 'net/lib.sh', that's different: some functions explicitly check for 'errexit' support. If I'm not mistaken, I fixed the only place where it was not compatible with 'errexit'. > Others looks good to me. > > Reviewed-by: Hangbin Liu <liuhangbin@gmail.com> Thank you for the review! Cheers, Matt -- Sponsored by the NGI0 Core fund.
© 2016 - 2024 Red Hat, Inc.