_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.
V1->V2: Remove decimal points not followed by digits
V2->V3: Per Dave Chinner, simplify by using multiple sed expressions
Signed-off-by: Eric Whitney <enwlinux@gmail.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
# 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
+ _min=`echo $_min | sed -e '/\./s/0*$//' -e 's/\.$//'`
+ _max=`echo $_max | sed -e '/\./s/0*$//' -e 's/\.$//'`
if [ $_in_range -eq 1 ]
then