Skip to content

Commit

Permalink
ublk/rc: prefer to rublk over miniublk
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Ming Lei authored and kawasaki committed Nov 13, 2023
1 parent 06f5aa3 commit 8b633b4
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 2 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ SHELLCHECK_EXCLUDE := SC2119

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 .

Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ Some tests require the following:
- 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
Expand Down
31 changes: 31 additions & 0 deletions src/rublk_wrapper.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/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[@]}"
6 changes: 5 additions & 1 deletion tests/ublk/rc
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,8 @@ group_requires() {
_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

0 comments on commit 8b633b4

Please sign in to comment.