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 - 2026 Red Hat, Inc.