[LTP] [PATCH v4 2/4] tst_ansi_color.sh: Allow to run with set -e

Li Wang liwang@redhat.com
Tue Aug 9 11:31:35 CEST 2022


Hi Petr,

On Mon, Aug 8, 2022 at 7:38 PM Petr Vorel <pvorel@suse.cz> wrote:

> set -e (or #!/bin/sh -e or set -o errexit) quits on any non-zero exit
> code, therefore any && must be turned into || (or if ...; then ..; fi).
> Fix hardens tst_res TINFO to be able to be used on scripts with errexit.
>
> Signed-off-by: Petr Vorel <pvorel@suse.cz>
> ---
> changes v2->v3:
> * really fix it.
>
>  testcases/lib/tst_ansi_color.sh | 13 +++++++------
>  1 file changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/testcases/lib/tst_ansi_color.sh
> b/testcases/lib/tst_ansi_color.sh
> index 703df1eb8..517b709d0 100644
> --- a/testcases/lib/tst_ansi_color.sh
> +++ b/testcases/lib/tst_ansi_color.sh
> @@ -24,18 +24,19 @@ tst_flag2color()
>
>  tst_color_enabled()
>  {
> -       [ "$LTP_COLORIZE_OUTPUT" = "n" ] || [ "$LTP_COLORIZE_OUTPUT" = "0"
> ] && return 0
> -       [ "$LTP_COLORIZE_OUTPUT" = "y" ] || [ "$LTP_COLORIZE_OUTPUT" = "1"
> ] && return 1
> +       [ "$LTP_COLORIZE_OUTPUT" = "n" -o "$LTP_COLORIZE_OUTPUT" = "0" ]
> || return 1
> +       [ "$LTP_COLORIZE_OUTPUT" = "y" -o "$LTP_COLORIZE_OUTPUT" = "1" ]
> || return 0
>

This can work but looks a bit strange to read. I personally think
use 'if ...; then ; fi' will be better to understand, because this is a
simple function, no need to go with weird logic for over simplifying:).



>         [ -t 1 ] || return 0
>         return 1
>  }
>
>  tst_print_colored()
>  {
> -       tst_color_enabled
> -       local color=$?
> +       local color=0
>
> -       [ "$color" = "1" ] && tst_flag2color "$1"
> +       tst_color_enabled || color=$?
> +
> +       [ "$color" != 1 ] || tst_flag2color "$1"
>         printf "$2"
> -       [ "$color" = "1" ] && printf '\033[0m'
> +       [ "$color" != 1 ] || printf '\033[0m'
>  }
> --
> 2.37.1
>
>
> --
> Mailing list info: https://lists.linux.it/listinfo/ltp
>
>

-- 
Regards,
Li Wang
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linux.it/pipermail/ltp/attachments/20220809/ca743524/attachment.htm>


More information about the ltp mailing list