Many modern Linux distros don't include libaio-dev or libaio-devel package by default and this leads to libaio ioengine being unavailable in fio instances built at such systems. Approximately one third of the test cases in the fio test script for zoned block devices, t/zbd/test-zbd-support, use libaio ioengine. In order to allow users to run the entire set of ZBD tests without libaio, introduce a new command line option, -u, to the test script. When this option is added to the script command line, all tests that normally use libaio will be modified to use io_uring ioengine. Signed-off-by: Dmitry Fomichev <dmitry.fomichev@xxxxxxx> --- t/zbd/test-zbd-support | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/t/zbd/test-zbd-support b/t/zbd/test-zbd-support index d4aaa813..cdc03f28 100755 --- a/t/zbd/test-zbd-support +++ b/t/zbd/test-zbd-support @@ -17,6 +17,7 @@ usage() { echo -e "\t-t <test #> Run only a single test case with specified number" echo -e "\t-q Quit the test run after any failed test" echo -e "\t-z Run fio with debug=zbd option" + echo -e "\t-u Use io_uring ioengine in place of libaio" } max() { @@ -38,6 +39,8 @@ min() { ioengine() { if [ -n "$use_libzbc" ]; then echo -n "--ioengine=libzbc" + elif [ "$1" = "libaio" -a -n "$force_io_uring" ]; then + echo -n "--ioengine=io_uring" else echo -n "--ioengine=$1" fi @@ -1275,6 +1278,7 @@ use_libzbc= zbd_debug= max_open_zones_opt= quit_on_err= +force_io_uring= while [ "${1#-}" != "$1" ]; do case "$1" in @@ -1292,6 +1296,7 @@ while [ "${1#-}" != "$1" ]; do shift;; -q) quit_on_err=1; shift;; -z) zbd_debug=1; shift;; + -u) force_io_uring=1; shift;; --) shift; break;; *) usage; exit 1;; esac @@ -1302,6 +1307,11 @@ if [ $# != 1 ]; then exit 1 fi +if [ -n "$use_libzbc" -a -n "$force_io_uring" ]; then + echo "Please specify only one of -l and -u options" + exit 1 +fi + # shellcheck source=functions source "$(dirname "$0")/functions" || exit $? -- 2.37.3