[PATCH blktests 1/3] check: call _unload_modules for each test run

Shin'ichiro Kawasaki shinichiro.kawasaki at wdc.com
Sun Feb 22 19:50:21 PST 2026


Currently, the check script calls _unload_modules() once per test case.
However, when a test case has set_conditions(), the test case is
executed multiple times, once for each specified condition. Despite
these multiple execution, _unload_modules() is called only once after
all the runs for various conditions have been completed.

This behavior causes module unload problems. When a run leaves some
modules loaded, subsequent runs can be affected by the loaded modules.
To prevent such problems, call _unload_modules() for each test case run
for every condition.

Fixes: fb3ba926da7d ("check: support test case repeat by different conditions")
Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki at wdc.com>
---
 check | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/check b/check
index a2c19a2..9622030 100755
--- a/check
+++ b/check
@@ -416,7 +416,7 @@ _cleanup() {
 	_exit_cgroup2
 }
 
-_call_test() {
+__call_test() {
 	local test_func="$1"
 	local seqres="${RESULTS_DIR}/${TEST_NAME}"
 	# shellcheck disable=SC2034
@@ -536,6 +536,17 @@ _call_test() {
 	fi
 }
 
+_call_test() {
+	local ret
+
+	__call_test "$@"
+	ret=$?
+
+	_unload_modules
+
+	return $ret
+}
+
 _test_dev_is_zoned() {
 	[[ -e "${TEST_DEV_SYSFS}/queue/zoned" &&
 	   $(cat "${TEST_DEV_SYSFS}/queue/zoned") != none ]]
@@ -887,8 +898,6 @@ _run_test() {
 		ret=$?
 	fi
 
-	_unload_modules
-
 	return $ret
 }
 
-- 
2.53.0




More information about the Linux-nvme mailing list