All of lore.kernel.org
 help / color / mirror / Atom feed
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




             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.