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 v2] blktests: Add _have_kernel_config_file() and _check_kernel_option()
Date: Mon, 27 Jun 2022 15:32:49 +0800 [thread overview]
Message-ID: <20220627073249.34907-1-yangx.jy@fujitsu.com> (raw)
1) _have_kernel_config_file() sets SKIP_REASON when neither
/boot/config* nor /proc/config.gz is available.
2) _check_kernel_option() doesn't set SKIP_RESAON when
the specified kernel option is not defined.
3) _have_kernel_option() combines _have_kernel_config_file() and
_check_kernel_option() and then sets SKIP_RESAON when
_check_kernel_option() returns false.
Signed-off-by: Xiao Yang <yangx.jy@fujitsu.com>
---
common/multipath-over-rdma | 3 ++-
common/rc | 29 ++++++++++++++++++++++++-----
tests/nvme/039 | 3 +--
tests/nvmeof-mp/rc | 6 ++----
4 files changed, 29 insertions(+), 12 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..bf6cd10 100644
--- a/common/rc
+++ b/common/rc
@@ -149,25 +149,44 @@ _have_configfs() {
return 0
}
-_have_kernel_option() {
- local f opt=$1
-
+# Check if the specified kernel config files are available.
+_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 if the specified kernel option is defined.
+_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
return 1
}
+# Combine _have_kernel_config_file() and _check_kernel_option().
+# Set SKIP_RESAON when _check_kernel_option() returns false.
+_have_kernel_option() {
+ local opt=$1
+
+ _have_kernel_config_file || return
+ if ! _check_kernel_option "$opt"; then
+ SKIP_REASON="kernel option $opt has not been enabled"
+ return 1
+ fi
+
+ return 0
+}
+
# Check whether the version of the running kernel is greater than or equal to
# $1.$2.$3
_have_kver() {
diff --git a/tests/nvme/039 b/tests/nvme/039
index 85827fa..e175055 100755
--- a/tests/nvme/039
+++ b/tests/nvme/039
@@ -128,10 +128,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..2ae80c3 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
--
2.34.1
next reply other threads:[~2022-06-27 7:41 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-27 7:32 Xiao Yang [this message]
2022-06-28 8:53 ` [PATCH blktests v2] blktests: Add _have_kernel_config_file() and _check_kernel_option() Shinichiro Kawasaki
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=20220627073249.34907-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.