From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 43A17803D for ; Tue, 5 Mar 2013 13:26:07 -0600 (CST) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 269D18F8070 for ; Tue, 5 Mar 2013 11:26:07 -0800 (PST) Message-ID: <513646C4.2090504@redhat.com> Date: Tue, 05 Mar 2013 13:25:56 -0600 From: Eric Sandeen MIME-Version: 1.0 Subject: Re: [PATCH V2] xfstests: don't remove trailing zeros from integers References: <20130301180158.GC6449@wallace> <20130301203026.GC23616@dastard> <5136458D.4070803@sgi.com> In-Reply-To: <5136458D.4070803@sgi.com> List-Id: XFS Filesystem from SGI List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: xfs-bounces@oss.sgi.com Sender: xfs-bounces@oss.sgi.com To: Rich Johnston Cc: xfs@oss.sgi.com, 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 >>> --- >>> 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