[PATCH V2] xfstests: don't remove trailing zeros from integers
Eric Whitney
enwlinux at gmail.com
Tue Mar 5 13:31:43 CST 2013
* Rich Johnston <rjohnston at sgi.com>:
> On 03/01/2013 02:30 PM, Dave Chinner wrote:
> >On Fri, Mar 01, 2013 at 01:01:58PM -0500, 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, and
> >>remove decimal points not followed by digits.
> >>
> >>Signed-off-by: Eric Whitney <enwlinux at gmail.com>
> >>---
> >> common.filter | 7 +++++--
> >> 1 file changed, 5 insertions(+), 2 deletions(-)
> >>
> >>diff --git a/common.filter b/common.filter
> >>index 9e4c90c..bfc800b 100644
> >>--- a/common.filter
> >>+++ b/common.filter
> >>@@ -106,8 +106,11 @@ 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
> >>+ # and then remove any decimal points not followed by digits
> >>+ _min=`echo $_min | sed -e '/\./s/0*$//' | sed -e 's/\.$//'`
> >>+ _max=`echo $_max | sed -e '/\./s/0*$//' | sed -e 's/\.$//'`
>
> I like Dave's suggestion to change it to the following, what do you
> think Eric?
I just posted a V3 containing Dave's simplification. I'd hoped there
would be something like that, and much appreciate the suggestion.
Thanks,
Eric
>
> + _min=`echo $_min | sed -e '/\./s/0*$//' -e 's/\.$//'` # get rid
> of trailing zeros
> + _max=`echo $_max | sed -e '/\./s/0*$//' -e 's/\.$//'` # get rid
> of trailing zeros
>
> Regards
> --Rich
>
> >
> >You can do this with a single sed invocation via multiple
> >expressions:
> >
> >$ echo 200.00 | sed -e '/\./s/0*$//' -e 's/\.$//'
> >200
> >$
> >
> >Cheers,
> >
> >Dave.
> >
>
>
More information about the xfs
mailing list