The [[ ... > ... ]] operator doesn't really compare floats, it
compares strings. That works as expected if the strings are
the same length, but fails for comparisons like [[ 32 > 123 ]].
Use (( ... > ... )) for comparisons, and only use integer values.
This test has been failing intermittently forever, but the error
was ignored because of running in a VM.
Test-Parameters: trivial
Fixes:
f3b8f3fad502 ("tests: fix float comparison in sanity test_255a")
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Change-Id: I6787082cd579ae3f1bdd43222a739c939d3ebbe5
Reviewed-on: https://review.whamcloud.com/46350
Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Elena Gryaznova <elena.gryaznova@hpe.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
"$average_ladvise = +$speedup_ladvise%"
local lowest_speedup=20
- if [ ${average_cache%.*} -lt $lowest_speedup ]; then
- echo "Speedup with OSS cached read less than $lowest_speedup%," \
- "got $average_cache%. Skipping ladvise willread check."
+ if (( ${average_cache%.*} < $lowest_speedup )); then
+ echo "Speedup with OSS cached read less than $lowest_speedup%,"\
+ " got $average_cache%. Skipping ladvise willread check."
return 0
fi
return 0
lowest_speedup=$(bc <<<"scale=2; $average_cache / 2")
- [[ ${average_ladvise%.*} > $lowest_speedup ]] ||
+ (( ${average_ladvise%.*} > ${lowest_speedup%.*} )) ||
error_not_in_vm "Speedup with willread is less than " \
"$lowest_speedup%, got $average_ladvise%"
}