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

Li Wang liwang@redhat.com
Thu Feb 22 05:05:23 CET 2018


On Wed, Feb 21, 2018 at 5:12 PM, Richard Palethorpe <rpalethorpe@suse.de>
wrote:

> 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.
>

​For ​
what optimisation?

$(command) runs the command and captures its output in separate shell.
${parameter} the value of parameter is substituted.


​Here the purpose is to hide the output in sub shell I guess, shouldn't use
$()?


-- 
Li Wang
liwang@redhat.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linux.it/pipermail/ltp/attachments/20180222/36cdf716/attachment.html>


More information about the ltp mailing list