Recent fix of zonemode=zbd support for block size unaligned to zone size unveiled that the test case #33 has two issues. First issue is test preparation. Before the fix, write was done to only to the first zone due to a bug in zone selection which happens when block size is not a divisor of zone size. Then, status of second zone did not affect. After the fix, write count to the zones may vary if the second zone has almost full status since the zone is skipped from write target. Fix this by resetting the write target zones. Second issue is expected written data size. The test case checks that the written data size is larger than the io_size option value. This expectation was fine before the fix because data write was repeated in do_io() and the limit was checked with io_issue_bytes_exceeded(), which triggers loop break when written data is larger than io_size. However, after the fix, the limit is checked with keep_running() in thread_main(). According to code and block comment in keep_running(), fio job terminates even when written data size is smaller than io_size if the gap is smaller than maximum IO size. Then the expected written data size is the largest multiple of block size smaller than or equal to the io_size. This io_size check change resulted in the test case failure. Avoid the failure by fixing the expected written data size calculation. Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@xxxxxxx> Tested-by: Dmitry Fomichev <dmitry.fomichev@xxxxxxx> Reviewed-by: Dmitry Fomichev <dmitry.fomichev@xxxxxxx> --- t/zbd/test-zbd-support | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/t/zbd/test-zbd-support b/t/zbd/test-zbd-support index cdc03f28..debe3763 100755 --- a/t/zbd/test-zbd-support +++ b/t/zbd/test-zbd-support @@ -813,7 +813,8 @@ test33() { local bs io_size size local off capacity=0; - prep_write + [ -n "$is_zbd" ] && reset_zone "$dev" -1 + off=$((first_sequential_zone_sector * 512)) capacity=$(total_zone_capacity 1 $off $dev) size=$((2 * zone_size)) @@ -822,7 +823,7 @@ test33() { run_fio_on_seq "$(ioengine "psync")" --iodepth=1 --rw=write \ --size=$size --io_size=$io_size --bs=$bs \ >> "${logfile}.${test_number}" 2>&1 || return $? - check_written $(((io_size + bs - 1) / bs * bs)) || return $? + check_written $((io_size / bs * bs)) || return $? } # Write to sequential zones with a block size that is not a divisor of the -- 2.37.1