[PATCH] xfstests: don't remove trailing zeros from integers
Eric Whitney
enwlinux at gmail.com
Thu Feb 28 22:13:44 CST 2013
* Eric Sandeen <sandeen at redhat.com>:
> On 2/28/13 6:26 PM, Eric Whitney wrote:
> > _within_tolerance strips trailing zeros from the min and max range
> > values it outputs. This leads to damage if the min or max value is
> > an integer containing trailing zeros rather than a real number with
> > a fractional part containing trailing zeros. Xfstest 289 can exhibit
> > this problem when its input is out of range. Modify the code so it
> > will only remove trailing zeros found after a decimal point.
>
> whoops, that's not too good.
>
> It's only for the output message in a failure case though, correct?
> But it makes the error output unhelpful.
Right on both counts. We'd noticed the error output was confusing a few
months ago when you fixed an ext4 free space reporting problem (this is an
IOU) - 1280000 reported as 128 in that case.
>
> Seems a little weird that it still leaves the trailing decimal:
>
> $ echo 20000.00 | sed -e '/\./s/0*$//'
> 20000.
>
> but that's not a big deal. The patch makes it better and
> the output is understandable even if it has a trailing
> decimal (which it had before anyway) so:
>
> Reviewed-by: Eric Sandeen <sandeen at redhat.com>
I'd reached the same conclusion, but if preferred I'll take this farther
and eliminate the trailing decimal.
Thanks for the review!
Eric
>
> > Signed-off-by: Eric Whitney <enwlinux at gmail.com>
> > ---
> > common.filter | 6 ++++--
> > 1 file changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/common.filter b/common.filter
> > index 9e4c90c..1df2f97 100644
> > --- a/common.filter
> > +++ b/common.filter
> > @@ -106,8 +106,10 @@ EOF
> >
> > # fix up min, max precision for output
> > # can vary for 5.3, 6.2
> > - _min=`echo $_min | sed -e 's/0*$//'` # get rid of trailling zeroes
> > - _max=`echo $_max | sed -e 's/0*$//'` # get rid of trailling zeroes
> > +
> > + # remove any trailing zeroes from min, max if they have fractional parts
> > + _min=`echo $_min | sed -e '/\./s/0*$//'`
> > + _max=`echo $_max | sed -e '/\./s/0*$//'`
> >
> > if [ $_in_range -eq 1 ]
> > then
> >
>
More information about the xfs
mailing list