]> www.infradead.org Git - nvme.git/commitdiff
selftests: ublk: cleanup backfile automatically
authorMing Lei <ming.lei@redhat.com>
Sat, 12 Apr 2025 02:30:19 +0000 (10:30 +0800)
committerJens Axboe <axboe@kernel.dk>
Thu, 17 Apr 2025 01:32:18 +0000 (19:32 -0600)
Use global array of $UBLK_BACKFILES for storing all backfile name, then
clean them automatically.

Signed-off-by: Ming Lei <ming.lei@redhat.com>
Link: https://lore.kernel.org/r/20250412023035.2649275-4-ming.lei@redhat.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 files changed:
tools/testing/selftests/ublk/test_common.sh
tools/testing/selftests/ublk/test_loop_01.sh
tools/testing/selftests/ublk/test_loop_02.sh
tools/testing/selftests/ublk/test_loop_03.sh
tools/testing/selftests/ublk/test_loop_04.sh
tools/testing/selftests/ublk/test_loop_05.sh
tools/testing/selftests/ublk/test_stress_01.sh
tools/testing/selftests/ublk/test_stress_02.sh
tools/testing/selftests/ublk/test_stripe_01.sh
tools/testing/selftests/ublk/test_stripe_02.sh
tools/testing/selftests/ublk/test_stripe_03.sh
tools/testing/selftests/ublk/test_stripe_04.sh

index a88b359432279bb9197bcb3ba94b9e292736f072..c7d04da7235aab8ddae983d93b891ad15116edd2 100755 (executable)
@@ -30,18 +30,26 @@ _run_fio_verify_io() {
 }
 
 _create_backfile() {
-       local my_size=$1
-       local my_file
+       local index=$1
+       local new_size=$2
+       local old_file
+       local new_file
 
-       my_file=$(mktemp ublk_file_"${my_size}"_XXXXX)
-       truncate -s "${my_size}" "${my_file}"
-       echo "$my_file"
+       old_file="${UBLK_BACKFILES[$index]}"
+       [ -f "$old_file" ] && rm -f "$old_file"
+
+       new_file=$(mktemp ublk_file_"${new_size}"_XXXXX)
+       truncate -s "${new_size}" "${new_file}"
+       UBLK_BACKFILES["$index"]="$new_file"
 }
 
-_remove_backfile() {
-       local file=$1
+_remove_files() {
+       local file
 
-       [ -f "$file" ] && rm -f "$file"
+       for file in "${UBLK_BACKFILES[@]}"; do
+               [ -f "$file" ] && rm -f "$file"
+       done
+       [ -f "$UBLK_TMP" ] && rm -f "$UBLK_TMP"
 }
 
 _create_tmp_dir() {
@@ -129,7 +137,10 @@ _show_result()
                        echo "$1 : [FAIL]"
                fi
        fi
-       [ "$2" -ne 0 ] && exit "$2"
+       if [ "$2" -ne 0 ]; then
+               _remove_files
+               exit "$2"
+       fi
        return 0
 }
 
@@ -138,16 +149,16 @@ _check_add_dev()
 {
        local tid=$1
        local code=$2
-       shift 2
+
        if [ "${code}" -ne 0 ]; then
-               _remove_test_files "$@"
                _show_result "${tid}" "${code}"
        fi
 }
 
 _cleanup_test() {
        "${UBLK_PROG}" del -a
-       rm -f "$UBLK_TMP"
+
+       _remove_files
 }
 
 _have_feature()
@@ -247,6 +258,7 @@ UBLK_TMP=$(mktemp ublk_test_XXXXX)
 UBLK_PROG=$(_ublk_test_top_dir)/kublk
 UBLK_TEST_QUIET=1
 UBLK_TEST_SHOW_RESULT=1
+UBLK_BACKFILES=()
 export UBLK_PROG
 export UBLK_TEST_QUIET
 export UBLK_TEST_SHOW_RESULT
index 1ef8b6044777cb1454224eed03763ead4da7d003..833fa0dbc7009dcbf6deca55027f1171b36186c3 100755 (executable)
@@ -12,10 +12,10 @@ fi
 
 _prep_test "loop" "write and verify test"
 
-backfile_0=$(_create_backfile 256M)
+_create_backfile 0 256M
 
-dev_id=$(_add_ublk_dev -t loop "$backfile_0")
-_check_add_dev $TID $? "${backfile_0}"
+dev_id=$(_add_ublk_dev -t loop "${UBLK_BACKFILES[0]}")
+_check_add_dev $TID $?
 
 # run fio over the ublk disk
 _run_fio_verify_io --filename=/dev/ublkb"${dev_id}" --size=256M
@@ -23,6 +23,4 @@ ERR_CODE=$?
 
 _cleanup_test "loop"
 
-_remove_backfile "$backfile_0"
-
 _show_result $TID $ERR_CODE
index 03863d825e07da09f4059c55608ebe4ca9a883e4..874568b3646b62687476aae3cfd506c87fcebd6c 100755 (executable)
@@ -8,15 +8,13 @@ ERR_CODE=0
 
 _prep_test "loop" "mkfs & mount & umount"
 
-backfile_0=$(_create_backfile 256M)
-dev_id=$(_add_ublk_dev -t loop "$backfile_0")
-_check_add_dev $TID $? "$backfile_0"
+_create_backfile 0 256M
+dev_id=$(_add_ublk_dev -t loop "${UBLK_BACKFILES[0]}")
+_check_add_dev $TID $?
 
 _mkfs_mount_test /dev/ublkb"${dev_id}"
 ERR_CODE=$?
 
 _cleanup_test "loop"
 
-_remove_backfile "$backfile_0"
-
 _show_result $TID $ERR_CODE
index e9ca744de8b1348bfe4fe0161534da68450d33e5..c30f797c6429552126c046c23a80a64593b7a9c8 100755 (executable)
@@ -12,9 +12,9 @@ fi
 
 _prep_test "loop" "write and verify over zero copy"
 
-backfile_0=$(_create_backfile 256M)
-dev_id=$(_add_ublk_dev -t loop -z "$backfile_0")
-_check_add_dev $TID $? "$backfile_0"
+_create_backfile 0 256M
+dev_id=$(_add_ublk_dev -t loop -z "${UBLK_BACKFILES[0]}")
+_check_add_dev $TID $?
 
 # run fio over the ublk disk
 _run_fio_verify_io --filename=/dev/ublkb"${dev_id}" --size=256M
@@ -22,6 +22,4 @@ ERR_CODE=$?
 
 _cleanup_test "loop"
 
-_remove_backfile "$backfile_0"
-
 _show_result $TID $ERR_CODE
index 1435422c38ec8cd4bb0fa95747bbe0008e10a39a..b01d75b3214d210b4195bd4a0b29584acd6f0bf5 100755 (executable)
@@ -8,15 +8,14 @@ ERR_CODE=0
 
 _prep_test "loop" "mkfs & mount & umount with zero copy"
 
-backfile_0=$(_create_backfile 256M)
-dev_id=$(_add_ublk_dev -t loop -z "$backfile_0")
-_check_add_dev $TID $? "$backfile_0"
+_create_backfile 0 256M
+
+dev_id=$(_add_ublk_dev -t loop -z "${UBLK_BACKFILES[0]}")
+_check_add_dev $TID $?
 
 _mkfs_mount_test /dev/ublkb"${dev_id}"
 ERR_CODE=$?
 
 _cleanup_test "loop"
 
-_remove_backfile "$backfile_0"
-
 _show_result $TID $ERR_CODE
index 2e6e2e6978fca5c9901ba8c5de8e467d990b70d2..de21415330742e58d8cbde3a1b8fc6223694acd9 100755 (executable)
@@ -12,10 +12,10 @@ fi
 
 _prep_test "loop" "write and verify test"
 
-backfile_0=$(_create_backfile 256M)
+_create_backfile 0 256M
 
-dev_id=$(_add_ublk_dev -q 2 -t loop "$backfile_0")
-_check_add_dev $TID $? "${backfile_0}"
+dev_id=$(_add_ublk_dev -q 2 -t loop "${UBLK_BACKFILES[0]}")
+_check_add_dev $TID $?
 
 # run fio over the ublk disk
 _run_fio_verify_io --filename=/dev/ublkb"${dev_id}" --size=256M
@@ -23,6 +23,4 @@ ERR_CODE=$?
 
 _cleanup_test "loop"
 
-_remove_backfile "$backfile_0"
-
 _show_result $TID $ERR_CODE
index a8be24532b24b7b53de50418fbf77031d1e64b66..4c37a2cf13a377e36b4168f598e60174e6538694 100755 (executable)
@@ -10,17 +10,13 @@ ublk_io_and_remove()
 {
        local size=$1
        shift 1
-       local backfile=""
-       if echo "$@" | grep -q "loop"; then
-               backfile=${*: -1}
-       fi
+
        DEV_ID=$(_add_ublk_dev "$@")
-       _check_add_dev $TID $? "${backfile}"
+       _check_add_dev $TID $?
 
        [ "$UBLK_TEST_QUIET" -eq 0 ] && echo "run ublk IO vs. remove device(ublk add $*)"
        if ! __run_io_and_remove "${DEV_ID}" "${size}" "no"; then
                echo "/dev/ublkc${DEV_ID} isn't removed"
-               _remove_backfile "${backfile}"
                exit 255
        fi
 }
@@ -33,15 +29,15 @@ if [ ${ERR_CODE} -ne 0 ]; then
        _show_result $TID $ERR_CODE
 fi
 
-BACK_FILE=$(_create_backfile 256M)
-ublk_io_and_remove 256M -t loop -q 4 "${BACK_FILE}"
+_create_backfile 0 256M
+
+ublk_io_and_remove 256M -t loop -q 4 "${UBLK_BACKFILES[0]}"
 ERR_CODE=$?
 if [ ${ERR_CODE} -ne 0 ]; then
        _show_result $TID $ERR_CODE
 fi
 
-ublk_io_and_remove 256M -t loop -q 4 -z "${BACK_FILE}"
+ublk_io_and_remove 256M -t loop -q 4 -z "${UBLK_BACKFILES[0]}"
 ERR_CODE=$?
 _cleanup_test "stress"
-_remove_backfile "${BACK_FILE}"
 _show_result $TID $ERR_CODE
index 2159e4cc8140ec8f88dca64b6206d4e8dff993a5..4b6ad441d5000cc0b253bf85e79caff93e711c01 100755 (executable)
@@ -10,17 +10,13 @@ ublk_io_and_kill_daemon()
 {
        local size=$1
        shift 1
-       local backfile=""
-       if echo "$@" | grep -q "loop"; then
-               backfile=${*: -1}
-       fi
+
        DEV_ID=$(_add_ublk_dev "$@")
-       _check_add_dev $TID $? "${backfile}"
+       _check_add_dev $TID $?
 
        [ "$UBLK_TEST_QUIET" -eq 0 ] && echo "run ublk IO vs kill ublk server(ublk add $*)"
        if ! __run_io_and_remove "${DEV_ID}" "${size}" "yes"; then
                echo "/dev/ublkc${DEV_ID} isn't removed res ${res}"
-               _remove_backfile "${backfile}"
                exit 255
        fi
 }
@@ -33,15 +29,15 @@ if [ ${ERR_CODE} -ne 0 ]; then
        _show_result $TID $ERR_CODE
 fi
 
-BACK_FILE=$(_create_backfile 256M)
-ublk_io_and_kill_daemon 256M -t loop -q 4 "${BACK_FILE}"
+_create_backfile 0 256M
+
+ublk_io_and_kill_daemon 256M -t loop -q 4 "${UBLK_BACKFILES[0]}"
 ERR_CODE=$?
 if [ ${ERR_CODE} -ne 0 ]; then
        _show_result $TID $ERR_CODE
 fi
 
-ublk_io_and_kill_daemon 256M -t loop -q 4 -z "${BACK_FILE}"
+ublk_io_and_kill_daemon 256M -t loop -q 4 -z "${UBLK_BACKFILES[0]}"
 ERR_CODE=$?
 _cleanup_test "stress"
-_remove_backfile "${BACK_FILE}"
 _show_result $TID $ERR_CODE
index 7e387ef656ea896f514b728eb30a62e4e514a98e..4e4f0fdf3c9b5b48289a554ff5b43a2d34f4483d 100755 (executable)
@@ -12,19 +12,15 @@ fi
 
 _prep_test "stripe" "write and verify test"
 
-backfile_0=$(_create_backfile 256M)
-backfile_1=$(_create_backfile 256M)
+_create_backfile 0 256M
+_create_backfile 1 256M
 
-dev_id=$(_add_ublk_dev -t stripe "$backfile_0" "$backfile_1")
-_check_add_dev $TID $? "${backfile_0}"
+dev_id=$(_add_ublk_dev -t stripe "${UBLK_BACKFILES[0]}" "${UBLK_BACKFILES[1]}")
+_check_add_dev $TID $?
 
 # run fio over the ublk disk
 _run_fio_verify_io --filename=/dev/ublkb"${dev_id}" --size=512M
 ERR_CODE=$?
 
 _cleanup_test "stripe"
-
-_remove_backfile "$backfile_0"
-_remove_backfile "$backfile_1"
-
 _show_result $TID $ERR_CODE
index e8a45fa82dde045a550bfe0e7b388c0aad4b9219..5820ab2efba474766bc402f0c43c137e91d73862 100755 (executable)
@@ -8,17 +8,14 @@ ERR_CODE=0
 
 _prep_test "stripe" "mkfs & mount & umount"
 
-backfile_0=$(_create_backfile 256M)
-backfile_1=$(_create_backfile 256M)
-dev_id=$(_add_ublk_dev -t stripe "$backfile_0" "$backfile_1")
-_check_add_dev $TID $? "$backfile_0" "$backfile_1"
+_create_backfile 0 256M
+_create_backfile 1 256M
+
+dev_id=$(_add_ublk_dev -t stripe "${UBLK_BACKFILES[0]}" "${UBLK_BACKFILES[1]}")
+_check_add_dev $TID $?
 
 _mkfs_mount_test /dev/ublkb"${dev_id}"
 ERR_CODE=$?
 
 _cleanup_test "stripe"
-
-_remove_backfile "$backfile_0"
-_remove_backfile "$backfile_1"
-
 _show_result $TID $ERR_CODE
index c1b34af36145a8b9d59f935791562bf634de5f8b..20b977e27814c4da9cea89b31de70c89bd7b05d3 100755 (executable)
@@ -12,19 +12,15 @@ fi
 
 _prep_test "stripe" "write and verify test"
 
-backfile_0=$(_create_backfile 256M)
-backfile_1=$(_create_backfile 256M)
+_create_backfile 0 256M
+_create_backfile 1 256M
 
-dev_id=$(_add_ublk_dev -q 2 -t stripe "$backfile_0" "$backfile_1")
-_check_add_dev $TID $? "${backfile_0}"
+dev_id=$(_add_ublk_dev -q 2 -t stripe "${UBLK_BACKFILES[0]}" "${UBLK_BACKFILES[1]}")
+_check_add_dev $TID $?
 
 # run fio over the ublk disk
 _run_fio_verify_io --filename=/dev/ublkb"${dev_id}" --size=512M
 ERR_CODE=$?
 
 _cleanup_test "stripe"
-
-_remove_backfile "$backfile_0"
-_remove_backfile "$backfile_1"
-
 _show_result $TID $ERR_CODE
index 1f2b642381d17950c0a78c1c1beaca04d328ee9d..1b51ed2f1d843e4397344f9cdc38bbacb77c8215 100755 (executable)
@@ -8,17 +8,14 @@ ERR_CODE=0
 
 _prep_test "stripe" "mkfs & mount & umount on zero copy"
 
-backfile_0=$(_create_backfile 256M)
-backfile_1=$(_create_backfile 256M)
-dev_id=$(_add_ublk_dev -t stripe -z -q 2 "$backfile_0" "$backfile_1")
-_check_add_dev $TID $? "$backfile_0" "$backfile_1"
+_create_backfile 0 256M
+_create_backfile 1 256M
+
+dev_id=$(_add_ublk_dev -t stripe -z -q 2 "${UBLK_BACKFILES[0]}" "${UBLK_BACKFILES[1]}")
+_check_add_dev $TID $?
 
 _mkfs_mount_test /dev/ublkb"${dev_id}"
 ERR_CODE=$?
 
 _cleanup_test "stripe"
-
-_remove_backfile "$backfile_0"
-_remove_backfile "$backfile_1"
-
 _show_result $TID $ERR_CODE