X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;ds=sidebyside;f=t%2Fzbd%2Ftest-zbd-support;h=6fb48ef091cffad42c28e2330b01e206b46485fb;hb=937ec971236d98089b63217635294c788ea00bce;hp=d316d880c08d9c43601e213bbc5aa2a5dac2e969;hpb=cb6ee92a7fbf7e373074409d9570dc9b27dece17;p=fio.git diff --git a/t/zbd/test-zbd-support b/t/zbd/test-zbd-support index d316d880..6fb48ef0 100755 --- a/t/zbd/test-zbd-support +++ b/t/zbd/test-zbd-support @@ -85,7 +85,8 @@ run_fio() { fio=$(dirname "$0")/../../fio - opts=("--aux-path=/tmp" "--allow_file_create=0" "$@") + opts=("--aux-path=/tmp" "--allow_file_create=0" \ + "--significant_figures=10" "$@") { echo; echo "fio ${opts[*]}"; echo; } >>"${logfile}.${test_number}" "${dynamic_analyzer[@]}" "$fio" "${opts[@]}" @@ -141,9 +142,8 @@ test2() { if [ -z "$is_zbd" ]; then opts+=("--zonesize=${zone_size}") fi - run_fio "${opts[@]}" 2>&1 | - tee -a "${logfile}.${test_number}" | - grep -q 'No I/O performed' + run_fio "${opts[@]}" >> "${logfile}.${test_number}" 2>&1 || return $? + ! grep -q 'WRITE:' "${logfile}.${test_number}" } # Run fio against an empty zone. This causes fio to report "No I/O performed". @@ -160,12 +160,12 @@ test3() { opts+=("--zonesize=${zone_size}") fi run_fio "${opts[@]}" >> "${logfile}.${test_number}" 2>&1 || return $? - grep -q "No I/O performed" "${logfile}.${test_number}" + grep -q 'READ:' "${logfile}.${test_number}" rc=$? if [ -n "$is_zbd" ]; then - [ $rc = 0 ] - else [ $rc != 0 ] + else + [ $rc = 0 ] fi } @@ -731,6 +731,17 @@ test45() { grep -q "fio: first I/O failed. If .* is a zoned block device, consider --zonemode=zbd" } +# Random write to sequential zones, libaio, 8 jobs, queue depth 64 per job +test46() { + local size + + size=$((4 * zone_size)) + run_fio_on_seq --ioengine=libaio --iodepth=64 --rw=randwrite --bs=4K \ + --group_reporting=1 --numjobs=8 \ + >> "${logfile}.${test_number}" 2>&1 || return $? + check_written $((size * 8)) || return $? +} + tests=() dynamic_analyzer=() reset_all_zones= @@ -802,7 +813,7 @@ case "$(<"/sys/class/block/$basename/queue/zoned")" in esac if [ "${#tests[@]}" = 0 ]; then - for ((i=1;i<=45;i++)); do + for ((i=1;i<=46;i++)); do tests+=("$i") done fi