[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