xfs
[Top] [All Lists]

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

To: Dave Chinner <david@xxxxxxxxxxxxx>
Subject: Re: [PATCH 2/5] xfstests: use value of FSTYP if defined externally
From: David Sterba <dsterba@xxxxxxx>
Date: Mon, 20 Jan 2014 19:19:01 +0100
Cc: xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <20140120021345.GG18112@dastard>
Mail-followup-to: dsterba@xxxxxxx, Dave Chinner <david@xxxxxxxxxxxxx>, xfs@xxxxxxxxxxx
References: <cover.1389891730.git.dsterba@xxxxxxx> <efafb76f725148435b09a22c62c92a63eedb9b71.1389891730.git.dsterba@xxxxxxx> <20140120021345.GG18112@dastard>
Reply-to: dsterba@xxxxxxx
User-agent: Mutt/1.5.22 (2013-10-16)
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

> > -# 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,
david

<Prev in Thread] Current Thread [Next in Thread>