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. The documented free dependency can also be removed following d18da7ec37195 ("selftests/zram01.sh: Fix compression ratio calculation")
Signed-off-by: David Disseldorp ddiss@suse.de --- tools/testing/selftests/zram/README | 2 -- tools/testing/selftests/zram/zram01.sh | 18 ++++++++---------- 2 files changed, 8 insertions(+), 12 deletions(-)
v2: drop unused dependencies from selftests/zram/README
diff --git a/tools/testing/selftests/zram/README b/tools/testing/selftests/zram/README index 110b34834a6fa..510ca5a1087f5 100644 --- a/tools/testing/selftests/zram/README +++ b/tools/testing/selftests/zram/README @@ -27,9 +27,7 @@ zram01.sh: creates general purpose ram disks with ext4 filesystems zram02.sh: creates block device for swap
Commands required for testing: - - bc - dd - - free - awk - mkswap - swapon 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 }
linux-kselftest-mirror@lists.linaro.org