Re: [PATCH 2/5] xfstests: use value of FSTYP if defined externally

Dave Chinner
2014-01-20T22:23:27Z

On Mon, Jan 20, 2014 at 07:19:01PM +0100, David Sterba wrote:
> On Mon, Jan 20, 2014 at 01:13:45PM +1100, Dave Chinner wrote:
> > On Thu, Jan 16, 2014 at 06:07:12PM +0100, David Sterba wrote:
> > > --- a/check
> > > +++ b/check
> > > @@ -33,7 +33,7 @@ showme=false
> > > have_test_arg=false
> > > randomize=false
> > > here=`pwd`
> > > -FSTYP=xfs
> > > +FSTYP=${FSTYP:-xfs}
> >
> > ":-xfs" means assign the value of $xfs if $FTYPE is null. xfs is not
> > a variable....
>
> Docs say that
>
> ${parameter:-word}
> If parameter is unset or null, the expansion of word is substituted.
> Otherwise, the value of parameter is substituted.
>
> so 'xfs' will expand to itself. And I did test this one with:
>
> $ cat default.sh << EOF
> FSTYP=${FSTYP:-xfs}
> echo $FSTYP
> EOF
>
> $ cat external.sh << EOF
> FSTYP=btrfs
> source default.sh
> EOF
>
> $ sh default.sh
> xfs
>
> $ sh external.sh
> btrfs

Funny, I did the same tests to check and kept getting no output
instead of the "xfs" result. Changing it to := made it work just
fine. Oh well... :/

> > > -# Autodetect fs type based on what's on $TEST_DEV
> > > -if [ "$HOSTOS" == "Linux" ]; then
> > > +# Autodetect fs type based on what's on $TEST_DEV unless it's been set
> > > +# externally
> > > +if [ -z "$FSTYP" -a "$HOSTOS" == "Linux" ]; then
> >
> > If the default value expansion is fixed, FSTYP will always have a
> > value here Hence it will never, ever probe.
>
> > > FSTYP=`blkid -c /dev/null -s TYPE -o value $TEST_DEV`
> > > fi
> > > export FSTYP
> >
> > I suspect what you want is:
> >
> > -FSTYP=xfs
> >
> > .....
> >
> > if [ -z "$FSTYP" -a "$HOSTOS" == "Linux" ]; then
> > FSTYP=`blkid -c /dev/null -s TYPE -o value $TEST_DEV`
> > fi
> > FSTYP=${FSTYP:=xfs}
> > export FSTYP
>
> Right, the default assignment has to be last. I'll use the := form
> to be consistent with what's used in the file, though :- works here as
> well, just does not assign the variable within the ${...} expression.
> The result is the same.

Thanks.

Cheers,

Dave.
--
Dave Chinner
david@fromorbit.com