* [PATCH V2] xfstests: don't remove trailing zeros from integers
@ 2013-03-01 18:01 Eric Whitney
2013-03-01 20:30 ` Dave Chinner
0 siblings, 1 reply; 5+ messages in thread
From: Eric Whitney @ 2013-03-01 18:01 UTC (permalink / raw)
To: xfs; +Cc: sandeen
_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@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/\.$//'`
if [ $_in_range -eq 1 ]
then
--
1.7.10.4
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH V2] xfstests: don't remove trailing zeros from integers
2013-03-01 18:01 [PATCH V2] xfstests: don't remove trailing zeros from integers Eric Whitney
@ 2013-03-01 20:30 ` Dave Chinner
2013-03-05 19:20 ` Rich Johnston
0 siblings, 1 reply; 5+ messages in thread
From: Dave Chinner @ 2013-03-01 20:30 UTC (permalink / raw)
To: Eric Whitney; +Cc: sandeen, xfs
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@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/\.$//'`
You can do this with a single sed invocation via multiple
expressions:
$ echo 200.00 | sed -e '/\./s/0*$//' -e 's/\.$//'
200
$
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH V2] xfstests: don't remove trailing zeros from integers
2013-03-01 20:30 ` Dave Chinner
@ 2013-03-05 19:20 ` Rich Johnston
2013-03-05 19:25 ` Eric Sandeen
2013-03-05 19:31 ` Eric Whitney
0 siblings, 2 replies; 5+ messages in thread
From: Rich Johnston @ 2013-03-05 19:20 UTC (permalink / raw)
To: Dave Chinner; +Cc: sandeen, xfs, Eric Whitney
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@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.
>
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH V2] xfstests: don't remove trailing zeros from integers
2013-03-05 19:20 ` Rich Johnston
@ 2013-03-05 19:25 ` Eric Sandeen
2013-03-05 19:31 ` Eric Whitney
1 sibling, 0 replies; 5+ messages in thread
From: Eric Sandeen @ 2013-03-05 19:25 UTC (permalink / raw)
To: Rich Johnston; +Cc: xfs, Eric Whitney
On 3/5/13 1:20 PM, Rich Johnston wrote:
> 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@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
looks awesome. Don't much care. Better to just fix than to dither for too long,
aiming for the best sed ever ;)
-Eric
> 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.
>>
>
>
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH V2] xfstests: don't remove trailing zeros from integers
2013-03-05 19:20 ` Rich Johnston
2013-03-05 19:25 ` Eric Sandeen
@ 2013-03-05 19:31 ` Eric Whitney
1 sibling, 0 replies; 5+ messages in thread
From: Eric Whitney @ 2013-03-05 19:31 UTC (permalink / raw)
To: Rich Johnston; +Cc: sandeen, xfs, Eric Whitney
* Rich Johnston <rjohnston@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@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.
> >
>
>
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-03-05 19:31 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-01 18:01 [PATCH V2] xfstests: don't remove trailing zeros from integers Eric Whitney
2013-03-01 20:30 ` Dave Chinner
2013-03-05 19:20 ` Rich Johnston
2013-03-05 19:25 ` Eric Sandeen
2013-03-05 19:31 ` Eric Whitney
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox