t/zbd: add test case to confirm no max_open_zones limit check
authorShin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Wed, 22 Jan 2025 01:38:35 +0000 (10:38 +0900)
committerVincent Fu <vincentfu@gmail.com>
Wed, 22 Jan 2025 16:08:37 +0000 (11:08 -0500)
The previous commit fixed the max_open_zones limit check for non-write
jobs. Add a test case to confirm the fix.

Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Link: https://lore.kernel.org/r/20250122013835.1223725-3-shinichiro.kawasaki@wdc.com
Signed-off-by: Vincent Fu <vincentfu@gmail.com>
t/zbd/test-zbd-support

index e0b2a755018f5b21a9a29c6002eb1ff4498ef9f5..468fce708663c0de2e6dfd434fb20deb0f417e27 100755 (executable)
@@ -1608,6 +1608,35 @@ test69() {
                >> "${logfile}.${test_number}" 2>&1 || return $?
 }
 
+# Test max_open_zones and job_max_open_zones do not error out for non-write jobs
+test70() {
+       require_zbd || return "$SKIP_TESTCASE"
+
+       reset_zone "${dev}" -1
+
+       # Write data to two zones and make them open
+       run_fio_on_seq "$(ioengine "psync")" --io_size="$min_seq_write_size" \
+                      --rw=write --offset_increment=1z --numjobs=2 \
+                      --group_reporting=1 >> "${logfile}.${test_number}" 2>&1
+
+       # Confirm max_open_zones=1 for read workload does not fail
+       run_fio_on_seq "$(ioengine "psync")" --io_size="$min_seq_write_size" \
+                      --rw=read --max_open_zones=1 \
+                      >> "${logfile}.${test_number}" 2>&1 || return $?
+
+       # Confirm job_max_open_zones=1 for read workload does not fail
+       run_fio_on_seq "$(ioengine "psync")" --io_size="$min_seq_write_size" \
+                      --rw=read --job_max_open_zones=1 \
+                      >> "${logfile}.${test_number}" 2>&1
+       grep -q 'valid only for write jobs' \
+            "${logfile}.${test_number}" || return $?
+
+       # Confirm max_open_zones=1 for trim workload does not fail
+       run_fio_on_seq "$(ioengine "psync")" --rw=trim --io_size=1z \
+                      --bs="$zone_size" --max_open_zones=1 \
+                      >> "${logfile}.${test_number}" 2>&1
+}
+
 SECONDS=0
 tests=()
 dynamic_analyzer=()