[Top] [All Lists]

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

To: xfs@xxxxxxxxxxx
Subject: [PATCH V2] xfstests: don't remove trailing zeros from integers
From: Eric Whitney <enwlinux@xxxxxxxxx>
Date: Fri, 1 Mar 2013 13:01:58 -0500
Cc: sandeen@xxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:date:from:to:cc:subject:message-id:mime-version :content-type:content-disposition:user-agent; bh=eErL0bQXGqj3OMCrPg1VlJbS8aKsdl/qeS5ibtG9HeQ=; b=BYGwjssR60kvFLcC9xSIaqbvPDcZejdHenZYcocZn2fhc8u0iwUgdSePGnfoHoJcoC b59OFbkx/6f+tYlhuTAwNb23B393L2/QUIP7y25SG/NZWME1rf8Aped2sJ0zxWevFUuO j3YI9LnKzqtsxzDJDC/6ue0tebEdejCWEDGA8OmLK6iMaubxtPG3IoOjct1TCIyyfLu8 DyKtUlczjQ1ltgyjnKIusgiJrR4WgprCs2k+vRqKgLqCgrNhm2rvtd2ofRvRXMPlzarp igkauaoUR+LUT38Eo4wvEvtlLqFFN8wOtOrbM44LVXH1hH8h1dYt4wMTTNFwWWSs+scG EWkA==
User-agent: Mutt/1.5.21 (2010-09-15)
_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@xxxxxxxxx>
 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 ] 

<Prev in Thread] Current Thread [Next in Thread>