]> www.infradead.org Git - users/sagi/blktests.git/commitdiff
nvme/rc: Auto convert test device size info
authorDaniel Wagner <dwagner@suse.de>
Thu, 11 May 2023 14:09:43 +0000 (16:09 +0200)
committerShin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Thu, 25 May 2023 23:43:53 +0000 (08:43 +0900)
Introduce a convert_to_mb() helper which converts the size argument
to MBytes and use in test device require function. This makes it
possible to use user input strings in future.

Reviewed-by: Hannes Reinecke <hare@suse.de>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Signed-off-by: Daniel Wagner <dwagner@suse.de>
Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
common/rc
tests/nvme/035

index 0488feb7c87061e67e1f51f05781e5617fa79516..57e0f422673f511f8a6120564d4f5fa0ae70ab5c 100644 (file)
--- a/common/rc
+++ b/common/rc
@@ -325,9 +325,12 @@ _get_pci_parent_from_blkdev() {
                tail -2 | head -1
 }
 
-_require_test_dev_size_mb() {
-       local require_sz_mb=$1
-       local test_dev_sz_mb=$(($(blockdev --getsize64 "$TEST_DEV")/1024/1024))
+_require_test_dev_size() {
+       local require_sz_mb
+       local test_dev_sz_mb
+
+       require_sz_mb="$(convert_to_mb "$1")"
+       test_dev_sz_mb="$(($(blockdev --getsize64 "$TEST_DEV")/1024/1024))"
 
        if (( "$test_dev_sz_mb" < "$require_sz_mb" )); then
                SKIP_REASONS+=("${TEST_DEV} required at least ${require_sz_mb}m")
@@ -423,3 +426,24 @@ _have_writeable_kmsg() {
 _run_user() {
        su "$NORMAL_USER" -c "$1"
 }
+
+convert_to_mb()
+{
+       local str=$1
+       local res
+
+       res=$(echo "${str}" | sed -n 's/^\([0-9]\+\)$/\1/p')
+       if [[ -n "${res}" ]]; then
+               echo "$((res / 1024 / 1024))"
+       fi
+
+       res=$(echo "${str}" | sed -n 's/^\([0-9]\+\)[mM]$/\1/p')
+       if [[ -n "${res}" ]]; then
+               echo "$((res))"
+       fi
+
+       res=$(echo "${str}" | sed -n 's/^\([0-9]\+\)[gG]$/\1/p')
+       if [[ -n "${res}" ]]; then
+               echo "$((res * 1024))"
+       fi
+}
index d169e351e3d0560f8e48187a095b80c82f606587..eb1024edddbfbc1328a715074192282616639d16 100755 (executable)
@@ -17,7 +17,7 @@ requires() {
 }
 
 device_requires() {
-       _require_test_dev_size_mb 1024
+       _require_test_dev_size 1024m
 }
 
 test_device() {