diff mbox series

[blktests,5/9] scsi/004: allow to run with built-in scsi_debug

Message ID 20230417125913.458726-1-shinichiro@fastmail.com (mailing list archive)
State New, archived
Headers show
Series support built-in scsi_debug | expand

Commit Message

Shin'ichiro Kawasaki April 17, 2023, 12:59 p.m. UTC
From: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>

To allow the test case run with build-in scsi_debug, replace
'_have_module scsi_debug' with _have_scsi_debug, and replace
_init_scsi_debug with _configure_scsi_debug.

Also, save and restore the values of scsi_debug parameters 'opts' and
'ndelay'. The test case modifies the parameters and do not restore their
original values. It is fine when scsi_debug is loadable since scsi_debug
is unloaded after the test case run. However, when scsi_debug is built-
in, the modified parameters may affect following test cases. To avoid
potential impact on following test cases, save original values of the
parameters and restore them at the end of the test case.

Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
---
 tests/scsi/004 | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

Comments

Chaitanya Kulkarni April 18, 2023, 8:18 p.m. UTC | #1
On 4/17/23 05:59, Shin'ichiro Kawasaki wrote:
> From: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
>
> To allow the test case run with build-in scsi_debug, replace
> '_have_module scsi_debug' with _have_scsi_debug, and replace
> _init_scsi_debug with _configure_scsi_debug.
>
> Also, save and restore the values of scsi_debug parameters 'opts' and
> 'ndelay'. The test case modifies the parameters and do not restore their
> original values. It is fine when scsi_debug is loadable since scsi_debug
> is unloaded after the test case run. However, when scsi_debug is built-
> in, the modified parameters may affect following test cases. To avoid
> potential impact on following test cases, save original values of the
> parameters and restore them at the end of the test case.
>
> Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
> ---
>

Perhaps we should look into a helper to record other default
parameters before the testcase and restore it after when
it is built in ?

Irrespective of that, looks good.

Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>

-ck
Shin'ichiro Kawasaki April 21, 2023, 11:13 a.m. UTC | #2
On Apr 18, 2023 / 20:18, Chaitanya Kulkarni wrote:
> On 4/17/23 05:59, Shin'ichiro Kawasaki wrote:
> > From: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
> >
> > To allow the test case run with build-in scsi_debug, replace
> > '_have_module scsi_debug' with _have_scsi_debug, and replace
> > _init_scsi_debug with _configure_scsi_debug.
> >
> > Also, save and restore the values of scsi_debug parameters 'opts' and
> > 'ndelay'. The test case modifies the parameters and do not restore their
> > original values. It is fine when scsi_debug is loadable since scsi_debug
> > is unloaded after the test case run. However, when scsi_debug is built-
> > in, the modified parameters may affect following test cases. To avoid
> > potential impact on following test cases, save original values of the
> > parameters and restore them at the end of the test case.
> >
> > Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
> > ---
> >
> 
> Perhaps we should look into a helper to record other default
> parameters before the testcase and restore it after when
> it is built in ?

Hi Chaitanya, thanks for the review comments. Your idea sounds good. I will try
to implement it.

> 
> Irrespective of that, looks good.
> 
> Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
> 
> -ck
> 
>
diff mbox series

Patch

diff --git a/tests/scsi/004 b/tests/scsi/004
index f0845c1..110b5f4 100755
--- a/tests/scsi/004
+++ b/tests/scsi/004
@@ -18,15 +18,22 @@  DESCRIPTION="ensure repeated TASK SET FULL results in EIO on timing out command"
 CAN_BE_ZONED=1
 
 requires() {
-	_have_module scsi_debug
+	_have_scsi_debug
 }
 
 test() {
+	local opts ndelay
+
 	echo "Running ${TEST_NAME}"
 
-	if ! _init_scsi_debug add_host=1 max_luns=1 statistics=1 every_nth=1; then
+	if ! _configure_scsi_debug max_luns=1 statistics=1 every_nth=1; then
 	    return 1
 	fi
+
+	# save scsi_debug parameters
+	opts=$(</sys/bus/pseudo/drivers/scsi_debug/opts)
+	ndelay=$(</sys/bus/pseudo/drivers/scsi_debug/ndelay)
+
 	echo 5 > "/sys/block/${SCSI_DEBUG_DEVICES[0]}/device/timeout"
 	# every_nth RW with full queue gets SAM_STAT_TASK_SET_FULL
 	echo 0x800 > /sys/bus/pseudo/drivers/scsi_debug/opts
@@ -42,7 +49,11 @@  test() {
 	while grep -q -F "in_use_bm BUSY:" "/proc/scsi/scsi_debug/${SCSI_DEBUG_HOSTS[0]}"; do
 		sleep 1
 	done
-	echo 1 > /sys/bus/pseudo/drivers/scsi_debug/ndelay
+
+	# restore scsi_debug parameters
+	echo "$opts" > /sys/bus/pseudo/drivers/scsi_debug/opts
+	echo "$ndelay" > /sys/bus/pseudo/drivers/scsi_debug/ndelay
+
 	_exit_scsi_debug
 
 	echo "Test complete"