From: Xiao Yang <yangx.jy@fujitsu.com>
To: <linux-block@vger.kernel.org>
Cc: <shinichiro.kawasaki@wdc.com>, Xiao Yang <yangx.jy@fujitsu.com>
Subject: [PATCH blktests] blktests: Split _have_kernel_option()
Date: Sun, 26 Jun 2022 22:24:28 +0800 [thread overview]
Message-ID: <20220626142428.32874-1-yangx.jy@fujitsu.com> (raw)
Split _have_kernel_option() into _have_kernel_config_file()
and _check_kernel_option().
1) _have_kernel_config_file() will set SKIP_REASON when neither
/boot/config* nor /proc/config.gz is available.
2) _check_kernel_option() will not set SKIP_RESAON when the specified
kernel option is not defined.
Signed-off-by: Xiao Yang <yangx.jy@fujitsu.com>
---
common/multipath-over-rdma | 3 ++-
common/rc | 13 ++++++++-----
tests/nvme/033 | 7 ++++++-
tests/nvme/034 | 8 +++++++-
tests/nvme/035 | 8 +++++++-
tests/nvme/036 | 7 ++++++-
tests/nvme/037 | 7 ++++++-
tests/nvme/039 | 16 ++++++++++++----
tests/nvmeof-mp/rc | 11 ++++++-----
tests/srp/rc | 6 +++++-
tests/zbd/rc | 9 +++++++--
11 files changed, 72 insertions(+), 23 deletions(-)
diff --git a/common/multipath-over-rdma b/common/multipath-over-rdma
index f9d7b9a..8a2108f 100644
--- a/common/multipath-over-rdma
+++ b/common/multipath-over-rdma
@@ -19,7 +19,8 @@ if [ $ramdisk_size -gt $max_ramdisk_size ]; then
fi
_have_legacy_dm() {
- if ! _have_kernel_option DM_MQ_DEFAULT; then
+ _have_kernel_config_file || return
+ if ! _check_kernel_option DM_MQ_DEFAULT; then
SKIP_REASON="legacy device mapper support is missing"
return 1
fi
diff --git a/common/rc b/common/rc
index d18144b..df9fcb3 100644
--- a/common/rc
+++ b/common/rc
@@ -149,19 +149,22 @@ _have_configfs() {
return 0
}
-_have_kernel_option() {
- local f opt=$1
-
+_have_kernel_config_file() {
if [[ ! -f /proc/config.gz && ! -f /boot/config-$(uname -r) ]]; then
SKIP_REASON="kernel $(uname -r) config not found"
return 1
fi
+
+ return 0
+}
+
+_check_kernel_option() {
+ local f opt=$1
+
for f in /proc/config.gz /boot/config-$(uname -r); do
[ -e "$f" ] || continue
if zgrep -q "^CONFIG_${opt}=[my]$" "$f"; then
return 0
- else
- SKIP_REASON="kernel option $opt has not been enabled"
fi
done
diff --git a/tests/nvme/033 b/tests/nvme/033
index 90aee81..0f58227 100755
--- a/tests/nvme/033
+++ b/tests/nvme/033
@@ -10,7 +10,12 @@ QUICK=1
requires() {
_nvme_requires
- _have_kernel_option NVME_TARGET_PASSTHRU
+
+ _have_kernel_config_file || return
+ if ! _check_kernel_option NVME_TARGET_PASSTHRU; then
+ SKIP_REASON="NVME_TARGET_PASSTHRU has not been enabled"
+ return 1
+ fi
}
nvme_info() {
diff --git a/tests/nvme/034 b/tests/nvme/034
index f92e5e2..552c204 100755
--- a/tests/nvme/034
+++ b/tests/nvme/034
@@ -10,7 +10,13 @@ TIMED=1
requires() {
_nvme_requires
- _have_kernel_option NVME_TARGET_PASSTHRU
+
+ _have_kernel_config_file || return
+ if ! _check_kernel_option NVME_TARGET_PASSTHRU; then
+ SKIP_REASON="NVME_TARGET_PASSTHRU has not been enabled"
+ return 1
+ fi
+
_have_fio
}
diff --git a/tests/nvme/035 b/tests/nvme/035
index ee78a75..8581e0c 100755
--- a/tests/nvme/035
+++ b/tests/nvme/035
@@ -11,7 +11,13 @@ TIMED=1
requires() {
_nvme_requires
- _have_kernel_option NVME_TARGET_PASSTHRU
+
+ _have_kernel_config_file || return
+ if ! _check_kernel_option NVME_TARGET_PASSTHRU; then
+ SKIP_REASON="NVME_TARGET_PASSTHRU has not been enabled"
+ return 1
+ fi
+
_have_xfs
_have_fio
}
diff --git a/tests/nvme/036 b/tests/nvme/036
index 8218c65..c747489 100755
--- a/tests/nvme/036
+++ b/tests/nvme/036
@@ -10,7 +10,12 @@ QUICK=1
requires() {
_nvme_requires
- _have_kernel_option NVME_TARGET_PASSTHRU
+
+ _have_kernel_config_file || return
+ if ! _check_kernel_option NVME_TARGET_PASSTHRU; then
+ SKIP_REASON="NVME_TARGET_PASSTHRU has not been enabled"
+ return 1
+ fi
}
test_device() {
diff --git a/tests/nvme/037 b/tests/nvme/037
index fc6c213..92cff7f 100755
--- a/tests/nvme/037
+++ b/tests/nvme/037
@@ -9,7 +9,12 @@ DESCRIPTION="test deletion of NVMeOF passthru controllers immediately after setu
requires() {
_nvme_requires
- _have_kernel_option NVME_TARGET_PASSTHRU
+
+ _have_kernel_config_file || return
+ if ! _check_kernel_option NVME_TARGET_PASSTHRU; then
+ SKIP_REASON="NVME_TARGET_PASSTHRU has not been enabled"
+ return 1
+ fi
}
test_device() {
diff --git a/tests/nvme/039 b/tests/nvme/039
index 85827fa..00c6672 100755
--- a/tests/nvme/039
+++ b/tests/nvme/039
@@ -14,8 +14,17 @@ QUICK=1
requires() {
_have_program nvme
- _have_kernel_option FAULT_INJECTION && \
- _have_kernel_option FAULT_INJECTION_DEBUG_FS
+
+ _have_kernel_config_file || return
+ if ! _check_kernel_option FAULT_INJECTION; then
+ SKIP_REASON="FAULT_INJECTION has not been enabled"
+ return 1
+ fi
+
+ if ! _check_kernel_option FAULT_INJECTION_DEBUG_FS; then
+ SKIP_REASON="FAULT_INJECTION_DEBUG_FS has not been enabled"
+ return 1
+ fi
}
inject_unrec_read_on_read()
@@ -128,10 +137,9 @@ test_device() {
echo "Running ${TEST_NAME}"
- if _have_kernel_option NVME_VERBOSE_ERRORS; then
+ if _check_kernel_option NVME_VERBOSE_ERRORS; then
nvme_verbose_errors=true
else
- unset SKIP_REASON
nvme_verbose_errors=false
fi
diff --git a/tests/nvmeof-mp/rc b/tests/nvmeof-mp/rc
index 708196b..ea48c33 100755
--- a/tests/nvmeof-mp/rc
+++ b/tests/nvmeof-mp/rc
@@ -14,19 +14,17 @@ ini_timeout=1
group_requires() {
local m name p required_modules
+ _have_kernel_config_file || return
# Since the nvmeof-mp tests are based on the dm-mpath driver, these
# tests are incompatible with the NVME_MULTIPATH kernel configuration
# option with multipathing enabled in the nvme_core kernel module.
- if _have_kernel_option NVME_MULTIPATH && \
+ if _check_kernel_option NVME_MULTIPATH && \
_have_module_param_value nvme_core multipath Y; then
SKIP_REASON="CONFIG_NVME_MULTIPATH has been set in .config \
and multipathing has been enabled in the nvme_core kernel module"
return
fi
- # Avoid test skip due to SKIP_REASON set by _have_kernel_option().
- unset SKIP_REASON
-
_have_configfs || return
required_modules=(
dm_multipath
@@ -53,7 +51,10 @@ and multipathing has been enabled in the nvme_core kernel module"
_have_root || return
- _have_kernel_option DM_UEVENT || return
+ if ! _check_kernel_option DM_UEVENT; then
+ SKIP_REASON="DM_UEVENT has not been enabled"
+ return 1
+ fi
# shellcheck disable=SC2043
for name in multipathd; do
diff --git a/tests/srp/rc b/tests/srp/rc
index d44082a..38539cb 100755
--- a/tests/srp/rc
+++ b/tests/srp/rc
@@ -70,7 +70,11 @@ group_requires() {
_have_src_program discontiguous-io || return
- _have_kernel_option DM_UEVENT || return
+ _have_kernel_config_file || return
+ if ! _check_kernel_option DM_UEVENT; then
+ SKIP_REASON="DM_UEVENT has not been enabled"
+ return 1
+ fi
for name in srp_daemon multipathd; do
if pidof "$name" >/dev/null; then
diff --git a/tests/zbd/rc b/tests/zbd/rc
index fea55d6..410e528 100644
--- a/tests/zbd/rc
+++ b/tests/zbd/rc
@@ -12,9 +12,14 @@
#
group_requires() {
+ _have_kernel_config_file || return
+ if ! _check_kernel_option BLK_DEV_ZONED; then
+ SKIP_REASON="BLK_DEV_ZONED has not been enabled"
+ return 1
+ fi
+
_have_root && _have_program blkzone && _have_program dd &&
- _have_kernel_option BLK_DEV_ZONED && _have_null_blk &&
- _have_module_param null_blk zoned
+ _have_null_blk && _have_module_param null_blk zoned
}
group_device_requires() {
--
2.34.1
next reply other threads:[~2022-06-26 14:24 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-26 14:24 Xiao Yang [this message]
2022-06-27 3:57 ` [PATCH blktests] blktests: Split _have_kernel_option() Shinichiro Kawasaki
2022-06-27 7:35 ` yangx.jy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220626142428.32874-1-yangx.jy@fujitsu.com \
--to=yangx.jy@fujitsu.com \
--cc=linux-block@vger.kernel.org \
--cc=shinichiro.kawasaki@wdc.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.