[LTP] [RFC] [PATCH] shell: ROD_SILENT: Print std{out, err} on failure

Richard Palethorpe rpalethorpe@suse.de
Wed Feb 21 10:12:29 CET 2018


Hello,

Cyril Hrubis writes:

> Recently we had a problem when openQA (test automation framework) passed
> wrong device path as LTP_BIG_DEV. It has been much more complicated to
> debug because the error message from mkfs was not shown at all, since
> the tst_mkfs uses ROD_SILENT to execute the mkfs command.
>
> The best solution for ROD_SILENT is to store the command output into a
> variable and print it only on failure which is done by this patch.
>
> Signed-off-by: Cyril Hrubis <chrubis@suse.cz>
> ---
>  testcases/lib/test.sh     | 3 ++-
>  testcases/lib/tst_test.sh | 3 ++-
>  2 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/testcases/lib/test.sh b/testcases/lib/test.sh
> index 341c1f0f4..bce9893a9 100644
> --- a/testcases/lib/test.sh
> +++ b/testcases/lib/test.sh
> @@ -225,8 +225,9 @@ tst_timeout()
>  
>  ROD_SILENT()
>  {
> -	$@ > /dev/null 2>&1
> +	local tst_out=$($@ 2>&1)
>  	if [ $? -ne 0 ]; then
> +		echo "$tst_out"
>  		tst_brkm TBROK "$@ failed"
>  	fi
>  }
> diff --git a/testcases/lib/tst_test.sh b/testcases/lib/tst_test.sh
> index d6b638549..48afb9cc4 100644
> --- a/testcases/lib/tst_test.sh
> +++ b/testcases/lib/tst_test.sh
> @@ -118,8 +118,9 @@ tst_brk()
>  
>  ROD_SILENT()
>  {
> -	tst_rod $@ > /dev/null 2>&1
> +	local tst_out=$(tst_rod $@ 2>&1)
>  	if [ $? -ne 0 ]; then
> +		echo "$tst_out"
>  		tst_brk TBROK "$@ failed"
>  	fi
>  }
> -- 
> 2.13.6

LGTM except that you could maybe use ${ } instead of $( ) as a small
optimisation.

-- 
Thank you,
Richard.


More information about the ltp mailing list