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[@]}"
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".
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
}
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=
esac
if [ "${#tests[@]}" = 0 ]; then
- for ((i=1;i<=45;i++)); do
+ for ((i=1;i<=46;i++)); do
tests+=("$i")
done
fi