Awk is already called for /sys/block/zram#/mm_stat parsing, so use it to also perform the floating point capacity vs consumption ratio calculations. The test output is unchanged. This allows bc to be dropped as a dependency for the zram selftests. Signed-off-by: David Disseldorp <ddiss@xxxxxxx> --- tools/testing/selftests/zram/zram01.sh | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/tools/testing/selftests/zram/zram01.sh b/tools/testing/selftests/zram/zram01.sh index 8f4affe34f3e4..df1b1d4158989 100755 --- a/tools/testing/selftests/zram/zram01.sh +++ b/tools/testing/selftests/zram/zram01.sh @@ -33,7 +33,7 @@ zram_algs="lzo" zram_fill_fs() { - for i in $(seq $dev_start $dev_end); do + for ((i = $dev_start; i <= $dev_end && !ERR_CODE; i++)); do echo "fill zram$i..." local b=0 while [ true ]; do @@ -44,15 +44,13 @@ zram_fill_fs() done echo "zram$i can be filled with '$b' KB" - local mem_used_total=`awk '{print $3}' "/sys/block/zram$i/mm_stat"` - local v=$((100 * 1024 * $b / $mem_used_total)) - if [ "$v" -lt 100 ]; then - echo "FAIL compression ratio: 0.$v:1" - ERR_CODE=-1 - return - fi - - echo "zram compression ratio: $(echo "scale=2; $v / 100 " | bc):1: OK" + awk -v b="$b" '{ v = (100 * 1024 * b / $3) } END { + if (v < 100) { + printf "FAIL compression ratio: 0.%u:1\n", v + exit 1 + } + printf "zram compression ratio: %.2f:1: OK\n", v / 100 + }' "/sys/block/zram$i/mm_stat" || ERR_CODE=-1 done } -- 2.35.3