From 130975353b1548d76aa9790a4ac7e74bd2a37221 Mon Sep 17 00:00:00 2001 From: Ming Lei Date: Fri, 30 Jan 2026 00:19:55 +0800 Subject: [PATCH] selftests: ublk: refactor test_null_04 into separate functions Encapsulate each test case in its own function that creates the device, runs checks, and deletes only that device. This avoids calling _cleanup_test multiple times. Signed-off-by: Ming Lei Signed-off-by: Jens Axboe --- tools/testing/selftests/ublk/test_null_04.sh | 248 +++++++------------ 1 file changed, 94 insertions(+), 154 deletions(-) diff --git a/tools/testing/selftests/ublk/test_null_04.sh b/tools/testing/selftests/ublk/test_null_04.sh index 7491b8c17f000..22328e0f39253 100755 --- a/tools/testing/selftests/ublk/test_null_04.sh +++ b/tools/testing/selftests/ublk/test_null_04.sh @@ -3,163 +3,103 @@ . "$(cd "$(dirname "$0")" && pwd)"/test_common.sh +ERR_CODE=0 -_prep_test "null" "integrity params" +_check_value() { + local name=$1 + local actual=$2 + local expected=$3 -dev_id=$(_add_ublk_dev -t null -u --metadata_size 8) -_check_add_dev $TID $? -metadata_size=$(_get_metadata_size "$dev_id" metadata_size) -if [ "$metadata_size" != 8 ]; then - echo "metadata_size $metadata_size != 8" - _show_result $TID 255 -fi -pi_offset=$(_get_metadata_size "$dev_id" pi_offset) -if [ "$pi_offset" != 0 ]; then - echo "pi_offset $pi_offset != 0" - _show_result $TID 255 -fi -pi_tuple_size=$(_get_metadata_size "$dev_id" pi_tuple_size) -if [ "$pi_tuple_size" != 0 ]; then - echo "pi_tuple_size $pi_tuple_size != 0" - _show_result $TID 255 -fi -capable=$(cat "/sys/block/ublkb$dev_id/integrity/device_is_integrity_capable") -if [ "$capable" != 0 ]; then - echo "device_is_integrity_capable $capable != 0" - _show_result $TID 255 -fi -format=$(cat "/sys/block/ublkb$dev_id/integrity/format") -if [ "$format" != nop ]; then - echo "format $format != nop" - _show_result $TID 255 -fi -protection_interval_bytes=$(cat "/sys/block/ublkb$dev_id/integrity/protection_interval_bytes") -if [ "$protection_interval_bytes" != 512 ]; then - echo "protection_interval_bytes $protection_interval_bytes != 512" - _show_result $TID 255 -fi -tag_size=$(cat "/sys/block/ublkb$dev_id/integrity/tag_size") -if [ "$tag_size" != 0 ]; then - echo "tag_size $tag_size != 0" - _show_result $TID 255 -fi -_cleanup_test + if [ "$actual" != "$expected" ]; then + echo "$name $actual != $expected" + ERR_CODE=255 + return 1 + fi + return 0 +} -dev_id=$(_add_ublk_dev -t null -u --integrity_capable --metadata_size 64 --pi_offset 56 --csum_type ip) -_check_add_dev $TID $? -metadata_size=$(_get_metadata_size "$dev_id" metadata_size) -if [ "$metadata_size" != 64 ]; then - echo "metadata_size $metadata_size != 64" - _show_result $TID 255 -fi -pi_offset=$(_get_metadata_size "$dev_id" pi_offset) -if [ "$pi_offset" != 56 ]; then - echo "pi_offset $pi_offset != 56" - _show_result $TID 255 -fi -pi_tuple_size=$(_get_metadata_size "$dev_id" pi_tuple_size) -if [ "$pi_tuple_size" != 8 ]; then - echo "pi_tuple_size $pi_tuple_size != 8" - _show_result $TID 255 -fi -capable=$(cat "/sys/block/ublkb$dev_id/integrity/device_is_integrity_capable") -if [ "$capable" != 1 ]; then - echo "device_is_integrity_capable $capable != 1" - _show_result $TID 255 -fi -format=$(cat "/sys/block/ublkb$dev_id/integrity/format") -if [ "$format" != T10-DIF-TYPE3-IP ]; then - echo "format $format != T10-DIF-TYPE3-IP" - _show_result $TID 255 -fi -protection_interval_bytes=$(cat "/sys/block/ublkb$dev_id/integrity/protection_interval_bytes") -if [ "$protection_interval_bytes" != 512 ]; then - echo "protection_interval_bytes $protection_interval_bytes != 512" - _show_result $TID 255 -fi -tag_size=$(cat "/sys/block/ublkb$dev_id/integrity/tag_size") -if [ "$tag_size" != 0 ]; then - echo "tag_size $tag_size != 0" - _show_result $TID 255 -fi -_cleanup_test +_test_metadata_only() { + local dev_id -dev_id=$(_add_ublk_dev -t null -u --integrity_reftag --metadata_size 8 --csum_type t10dif) -_check_add_dev $TID $? -metadata_size=$(_get_metadata_size "$dev_id" metadata_size) -if [ "$metadata_size" != 8 ]; then - echo "metadata_size $metadata_size != 8" - _show_result $TID 255 -fi -pi_offset=$(_get_metadata_size "$dev_id" pi_offset) -if [ "$pi_offset" != 0 ]; then - echo "pi_offset $pi_offset != 0" - _show_result $TID 255 -fi -pi_tuple_size=$(_get_metadata_size "$dev_id" pi_tuple_size) -if [ "$pi_tuple_size" != 8 ]; then - echo "pi_tuple_size $pi_tuple_size != 8" - _show_result $TID 255 -fi -capable=$(cat "/sys/block/ublkb$dev_id/integrity/device_is_integrity_capable") -if [ "$capable" != 0 ]; then - echo "device_is_integrity_capable $capable != 0" - _show_result $TID 255 -fi -format=$(cat "/sys/block/ublkb$dev_id/integrity/format") -if [ "$format" != T10-DIF-TYPE1-CRC ]; then - echo "format $format != T10-DIF-TYPE1-CRC" - _show_result $TID 255 -fi -protection_interval_bytes=$(cat "/sys/block/ublkb$dev_id/integrity/protection_interval_bytes") -if [ "$protection_interval_bytes" != 512 ]; then - echo "protection_interval_bytes $protection_interval_bytes != 512" - _show_result $TID 255 -fi -tag_size=$(cat "/sys/block/ublkb$dev_id/integrity/tag_size") -if [ "$tag_size" != 0 ]; then - echo "tag_size $tag_size != 0" - _show_result $TID 255 -fi -_cleanup_test + dev_id=$(_add_ublk_dev -t null -u --metadata_size 8) + _check_add_dev "$TID" $? -dev_id=$(_add_ublk_dev -t null -u --metadata_size 16 --csum_type nvme --tag_size 8) -_check_add_dev $TID $? -metadata_size=$(_get_metadata_size "$dev_id" metadata_size) -if [ "$metadata_size" != 16 ]; then - echo "metadata_size $metadata_size != 16" - _show_result $TID 255 -fi -pi_offset=$(_get_metadata_size "$dev_id" pi_offset) -if [ "$pi_offset" != 0 ]; then - echo "pi_offset $pi_offset != 0" - _show_result $TID 255 -fi -pi_tuple_size=$(_get_metadata_size "$dev_id" pi_tuple_size) -if [ "$pi_tuple_size" != 16 ]; then - echo "pi_tuple_size $pi_tuple_size != 16" - _show_result $TID 255 -fi -capable=$(cat "/sys/block/ublkb$dev_id/integrity/device_is_integrity_capable") -if [ "$capable" != 0 ]; then - echo "device_is_integrity_capable $capable != 0" - _show_result $TID 255 -fi -format=$(cat "/sys/block/ublkb$dev_id/integrity/format") -if [ "$format" != EXT-DIF-TYPE3-CRC64 ]; then - echo "format $format != EXT-DIF-TYPE3-CRC64" - _show_result $TID 255 -fi -protection_interval_bytes=$(cat "/sys/block/ublkb$dev_id/integrity/protection_interval_bytes") -if [ "$protection_interval_bytes" != 512 ]; then - echo "protection_interval_bytes $protection_interval_bytes != 512" - _show_result $TID 255 -fi -tag_size=$(cat "/sys/block/ublkb$dev_id/integrity/tag_size") -if [ "$tag_size" != 8 ]; then - echo "tag_size $tag_size != 8" - _show_result $TID 255 -fi -_cleanup_test + _check_value "metadata_size" "$(_get_metadata_size "$dev_id" metadata_size)" 8 && + _check_value "pi_offset" "$(_get_metadata_size "$dev_id" pi_offset)" 0 && + _check_value "pi_tuple_size" "$(_get_metadata_size "$dev_id" pi_tuple_size)" 0 && + _check_value "device_is_integrity_capable" \ + "$(cat "/sys/block/ublkb$dev_id/integrity/device_is_integrity_capable")" 0 && + _check_value "format" "$(cat "/sys/block/ublkb$dev_id/integrity/format")" nop && + _check_value "protection_interval_bytes" \ + "$(cat "/sys/block/ublkb$dev_id/integrity/protection_interval_bytes")" 512 && + _check_value "tag_size" "$(cat "/sys/block/ublkb$dev_id/integrity/tag_size")" 0 + + ${UBLK_PROG} del -n "${dev_id}" +} + +_test_integrity_capable_ip() { + local dev_id + + dev_id=$(_add_ublk_dev -t null -u --integrity_capable --metadata_size 64 --pi_offset 56 --csum_type ip) + _check_add_dev "$TID" $? + + _check_value "metadata_size" "$(_get_metadata_size "$dev_id" metadata_size)" 64 && + _check_value "pi_offset" "$(_get_metadata_size "$dev_id" pi_offset)" 56 && + _check_value "pi_tuple_size" "$(_get_metadata_size "$dev_id" pi_tuple_size)" 8 && + _check_value "device_is_integrity_capable" \ + "$(cat "/sys/block/ublkb$dev_id/integrity/device_is_integrity_capable")" 1 && + _check_value "format" "$(cat "/sys/block/ublkb$dev_id/integrity/format")" T10-DIF-TYPE3-IP && + _check_value "protection_interval_bytes" \ + "$(cat "/sys/block/ublkb$dev_id/integrity/protection_interval_bytes")" 512 && + _check_value "tag_size" "$(cat "/sys/block/ublkb$dev_id/integrity/tag_size")" 0 + + ${UBLK_PROG} del -n "${dev_id}" +} + +_test_integrity_reftag_t10dif() { + local dev_id -_show_result $TID 0 + dev_id=$(_add_ublk_dev -t null -u --integrity_reftag --metadata_size 8 --csum_type t10dif) + _check_add_dev "$TID" $? + + _check_value "metadata_size" "$(_get_metadata_size "$dev_id" metadata_size)" 8 && + _check_value "pi_offset" "$(_get_metadata_size "$dev_id" pi_offset)" 0 && + _check_value "pi_tuple_size" "$(_get_metadata_size "$dev_id" pi_tuple_size)" 8 && + _check_value "device_is_integrity_capable" \ + "$(cat "/sys/block/ublkb$dev_id/integrity/device_is_integrity_capable")" 0 && + _check_value "format" "$(cat "/sys/block/ublkb$dev_id/integrity/format")" T10-DIF-TYPE1-CRC && + _check_value "protection_interval_bytes" \ + "$(cat "/sys/block/ublkb$dev_id/integrity/protection_interval_bytes")" 512 && + _check_value "tag_size" "$(cat "/sys/block/ublkb$dev_id/integrity/tag_size")" 0 + + ${UBLK_PROG} del -n "${dev_id}" +} + +_test_nvme_csum() { + local dev_id + + dev_id=$(_add_ublk_dev -t null -u --metadata_size 16 --csum_type nvme --tag_size 8) + _check_add_dev "$TID" $? + + _check_value "metadata_size" "$(_get_metadata_size "$dev_id" metadata_size)" 16 && + _check_value "pi_offset" "$(_get_metadata_size "$dev_id" pi_offset)" 0 && + _check_value "pi_tuple_size" "$(_get_metadata_size "$dev_id" pi_tuple_size)" 16 && + _check_value "device_is_integrity_capable" \ + "$(cat "/sys/block/ublkb$dev_id/integrity/device_is_integrity_capable")" 0 && + _check_value "format" "$(cat "/sys/block/ublkb$dev_id/integrity/format")" EXT-DIF-TYPE3-CRC64 && + _check_value "protection_interval_bytes" \ + "$(cat "/sys/block/ublkb$dev_id/integrity/protection_interval_bytes")" 512 && + _check_value "tag_size" "$(cat "/sys/block/ublkb$dev_id/integrity/tag_size")" 8 + + ${UBLK_PROG} del -n "${dev_id}" +} + +_prep_test "null" "integrity params" + +_test_metadata_only +_test_integrity_capable_ip +_test_integrity_reftag_t10dif +_test_nvme_csum + +_cleanup_test +_show_result "$TID" $ERR_CODE -- 2.47.3