[PATCH V2] xfstests: don't remove trailing zeros from integers

Rich Johnston rjohnston at sgi.com
Tue Mar 5 13:20:45 CST 2013


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?

+  _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