Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

selftests: ublk: add integrity params test

Add test case null_04 to exercise all the different integrity params. It
creates 4 different ublk devices with different combinations of
integrity arguments and verifies their integrity limits via sysfs and
the metadata_size utility.

Signed-off-by: Caleb Sander Mateos <csander@purestorage.com>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>

authored by

Caleb Sander Mateos and committed by
Jens Axboe
9e9f6355 f48250dc

+177
+1
tools/testing/selftests/ublk/Makefile
··· 27 27 TEST_PROGS += test_null_01.sh 28 28 TEST_PROGS += test_null_02.sh 29 29 TEST_PROGS += test_null_03.sh 30 + TEST_PROGS += test_null_04.sh 30 31 TEST_PROGS += test_loop_01.sh 31 32 TEST_PROGS += test_loop_02.sh 32 33 TEST_PROGS += test_loop_03.sh
+10
tools/testing/selftests/ublk/test_common.sh
··· 384 384 cd "$(dirname "$0")" && pwd 385 385 } 386 386 387 + METADATA_SIZE_PROG="$(_ublk_test_top_dir)/metadata_size" 388 + 389 + _get_metadata_size() 390 + { 391 + local dev_id=$1 392 + local field=$2 393 + 394 + "$METADATA_SIZE_PROG" "/dev/ublkb$dev_id" | grep "$field" | grep -o "[0-9]*" 395 + } 396 + 387 397 UBLK_PROG=$(_ublk_test_top_dir)/kublk 388 398 UBLK_TEST_QUIET=1 389 399 UBLK_TEST_SHOW_RESULT=1
+166
tools/testing/selftests/ublk/test_null_04.sh
··· 1 + #!/bin/bash 2 + # SPDX-License-Identifier: GPL-2.0 3 + 4 + . "$(cd "$(dirname "$0")" && pwd)"/test_common.sh 5 + 6 + TID=null_04 7 + 8 + _prep_test "null" "integrity params" 9 + 10 + dev_id=$(_add_ublk_dev -t null -u --metadata_size 8) 11 + _check_add_dev $TID $? 12 + metadata_size=$(_get_metadata_size "$dev_id" metadata_size) 13 + if [ "$metadata_size" != 8 ]; then 14 + echo "metadata_size $metadata_size != 8" 15 + _show_result $TID 255 16 + fi 17 + pi_offset=$(_get_metadata_size "$dev_id" pi_offset) 18 + if [ "$pi_offset" != 0 ]; then 19 + echo "pi_offset $pi_offset != 0" 20 + _show_result $TID 255 21 + fi 22 + pi_tuple_size=$(_get_metadata_size "$dev_id" pi_tuple_size) 23 + if [ "$pi_tuple_size" != 0 ]; then 24 + echo "pi_tuple_size $pi_tuple_size != 0" 25 + _show_result $TID 255 26 + fi 27 + capable=$(cat "/sys/block/ublkb$dev_id/integrity/device_is_integrity_capable") 28 + if [ "$capable" != 0 ]; then 29 + echo "device_is_integrity_capable $capable != 0" 30 + _show_result $TID 255 31 + fi 32 + format=$(cat "/sys/block/ublkb$dev_id/integrity/format") 33 + if [ "$format" != nop ]; then 34 + echo "format $format != nop" 35 + _show_result $TID 255 36 + fi 37 + protection_interval_bytes=$(cat "/sys/block/ublkb$dev_id/integrity/protection_interval_bytes") 38 + if [ "$protection_interval_bytes" != 512 ]; then 39 + echo "protection_interval_bytes $protection_interval_bytes != 512" 40 + _show_result $TID 255 41 + fi 42 + tag_size=$(cat "/sys/block/ublkb$dev_id/integrity/tag_size") 43 + if [ "$tag_size" != 0 ]; then 44 + echo "tag_size $tag_size != 0" 45 + _show_result $TID 255 46 + fi 47 + _cleanup_test 48 + 49 + dev_id=$(_add_ublk_dev -t null -u --integrity_capable --metadata_size 64 --pi_offset 56 --csum_type ip) 50 + _check_add_dev $TID $? 51 + metadata_size=$(_get_metadata_size "$dev_id" metadata_size) 52 + if [ "$metadata_size" != 64 ]; then 53 + echo "metadata_size $metadata_size != 64" 54 + _show_result $TID 255 55 + fi 56 + pi_offset=$(_get_metadata_size "$dev_id" pi_offset) 57 + if [ "$pi_offset" != 56 ]; then 58 + echo "pi_offset $pi_offset != 56" 59 + _show_result $TID 255 60 + fi 61 + pi_tuple_size=$(_get_metadata_size "$dev_id" pi_tuple_size) 62 + if [ "$pi_tuple_size" != 8 ]; then 63 + echo "pi_tuple_size $pi_tuple_size != 8" 64 + _show_result $TID 255 65 + fi 66 + capable=$(cat "/sys/block/ublkb$dev_id/integrity/device_is_integrity_capable") 67 + if [ "$capable" != 1 ]; then 68 + echo "device_is_integrity_capable $capable != 1" 69 + _show_result $TID 255 70 + fi 71 + format=$(cat "/sys/block/ublkb$dev_id/integrity/format") 72 + if [ "$format" != T10-DIF-TYPE3-IP ]; then 73 + echo "format $format != T10-DIF-TYPE3-IP" 74 + _show_result $TID 255 75 + fi 76 + protection_interval_bytes=$(cat "/sys/block/ublkb$dev_id/integrity/protection_interval_bytes") 77 + if [ "$protection_interval_bytes" != 512 ]; then 78 + echo "protection_interval_bytes $protection_interval_bytes != 512" 79 + _show_result $TID 255 80 + fi 81 + tag_size=$(cat "/sys/block/ublkb$dev_id/integrity/tag_size") 82 + if [ "$tag_size" != 0 ]; then 83 + echo "tag_size $tag_size != 0" 84 + _show_result $TID 255 85 + fi 86 + _cleanup_test 87 + 88 + dev_id=$(_add_ublk_dev -t null -u --integrity_reftag --metadata_size 8 --csum_type t10dif) 89 + _check_add_dev $TID $? 90 + metadata_size=$(_get_metadata_size "$dev_id" metadata_size) 91 + if [ "$metadata_size" != 8 ]; then 92 + echo "metadata_size $metadata_size != 8" 93 + _show_result $TID 255 94 + fi 95 + pi_offset=$(_get_metadata_size "$dev_id" pi_offset) 96 + if [ "$pi_offset" != 0 ]; then 97 + echo "pi_offset $pi_offset != 0" 98 + _show_result $TID 255 99 + fi 100 + pi_tuple_size=$(_get_metadata_size "$dev_id" pi_tuple_size) 101 + if [ "$pi_tuple_size" != 8 ]; then 102 + echo "pi_tuple_size $pi_tuple_size != 8" 103 + _show_result $TID 255 104 + fi 105 + capable=$(cat "/sys/block/ublkb$dev_id/integrity/device_is_integrity_capable") 106 + if [ "$capable" != 0 ]; then 107 + echo "device_is_integrity_capable $capable != 0" 108 + _show_result $TID 255 109 + fi 110 + format=$(cat "/sys/block/ublkb$dev_id/integrity/format") 111 + if [ "$format" != T10-DIF-TYPE1-CRC ]; then 112 + echo "format $format != T10-DIF-TYPE1-CRC" 113 + _show_result $TID 255 114 + fi 115 + protection_interval_bytes=$(cat "/sys/block/ublkb$dev_id/integrity/protection_interval_bytes") 116 + if [ "$protection_interval_bytes" != 512 ]; then 117 + echo "protection_interval_bytes $protection_interval_bytes != 512" 118 + _show_result $TID 255 119 + fi 120 + tag_size=$(cat "/sys/block/ublkb$dev_id/integrity/tag_size") 121 + if [ "$tag_size" != 0 ]; then 122 + echo "tag_size $tag_size != 0" 123 + _show_result $TID 255 124 + fi 125 + _cleanup_test 126 + 127 + dev_id=$(_add_ublk_dev -t null -u --metadata_size 16 --csum_type nvme --tag_size 8) 128 + _check_add_dev $TID $? 129 + metadata_size=$(_get_metadata_size "$dev_id" metadata_size) 130 + if [ "$metadata_size" != 16 ]; then 131 + echo "metadata_size $metadata_size != 16" 132 + _show_result $TID 255 133 + fi 134 + pi_offset=$(_get_metadata_size "$dev_id" pi_offset) 135 + if [ "$pi_offset" != 0 ]; then 136 + echo "pi_offset $pi_offset != 0" 137 + _show_result $TID 255 138 + fi 139 + pi_tuple_size=$(_get_metadata_size "$dev_id" pi_tuple_size) 140 + if [ "$pi_tuple_size" != 16 ]; then 141 + echo "pi_tuple_size $pi_tuple_size != 16" 142 + _show_result $TID 255 143 + fi 144 + capable=$(cat "/sys/block/ublkb$dev_id/integrity/device_is_integrity_capable") 145 + if [ "$capable" != 0 ]; then 146 + echo "device_is_integrity_capable $capable != 0" 147 + _show_result $TID 255 148 + fi 149 + format=$(cat "/sys/block/ublkb$dev_id/integrity/format") 150 + if [ "$format" != EXT-DIF-TYPE3-CRC64 ]; then 151 + echo "format $format != EXT-DIF-TYPE3-CRC64" 152 + _show_result $TID 255 153 + fi 154 + protection_interval_bytes=$(cat "/sys/block/ublkb$dev_id/integrity/protection_interval_bytes") 155 + if [ "$protection_interval_bytes" != 512 ]; then 156 + echo "protection_interval_bytes $protection_interval_bytes != 512" 157 + _show_result $TID 255 158 + fi 159 + tag_size=$(cat "/sys/block/ublkb$dev_id/integrity/tag_size") 160 + if [ "$tag_size" != 8 ]; then 161 + echo "tag_size $tag_size != 8" 162 + _show_result $TID 255 163 + fi 164 + _cleanup_test 165 + 166 + _show_result $TID 0