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] 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




             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.