Add one wrapper script for using rublk to run ublk tests, and prefer
to rublk because it is well implemented and more reliable.
This way has been run for months in rublk's github CI test.
https://github.com/ming1/rublk
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
check:
shellcheck -x -e $(SHELLCHECK_EXCLUDE) -f gcc check new common/* \
- tests/*/rc tests/*/[0-9]*[0-9]
+ tests/*/rc tests/*/[0-9]*[0-9] src/*.sh
! grep TODO tests/*/rc tests/*/[0-9]*[0-9]
! find -name '*.out' -perm /u=x+g=x+o=x -printf '%p is executable\n' | grep .
- multipath-tools (Debian, openSUSE, Arch Linux) or device-mapper-multipath
(Fedora)
- dmsetup (Debian) or device-mapper (Fedora, openSUSE, Arch Linux)
+- rublk (`cargo install --version=^0.1 rublk`) for ublk test
Build blktests with `make`. Optionally, install it to a known location with
`make install` (`/usr/local/blktests` by default, but this can be changed by
--- /dev/null
+#!/bin/bash
+# SPDX-License-Identifier: GPL-3.0+
+# Copyright (C) 2023 Ming Lei <ming.lei@redhat.com>
+#
+# rublk wrapper for adapting miniublk's command line
+
+PARA=()
+ACT=$1
+for arg in "$@"; do
+ if [ "$arg" = "-t" ]; then
+ continue
+ fi
+
+ if [ "$ACT" = "recover" ]; then
+ if [ "$arg" = "loop" ] || [ "$arg" = "null" ]; then
+ continue;
+ fi
+
+ if [ -f "$arg" ]; then
+ continue
+ fi
+
+ if [ "$arg" = "-f" ]; then
+ continue
+ fi
+ PARA+=("$arg")
+ else
+ PARA+=("$arg")
+ fi
+done
+rublk "${PARA[@]}"
_have_fio
}
-export UBLK_PROG="src/miniublk"
+if which rublk > /dev/null 2>&1; then
+ export UBLK_PROG="src/rublk_wrapper.sh"
+else
+ export UBLK_PROG="src/miniublk"
+fi