From: Shivaprasad G Bhat <sbhat@linux.ibm.com>
To: nvdimm@lists.linux.dev, dan.j.williams@intel.com,
vishal.l.verma@intel.com
Cc: aneesh.kumar@linux.ibm.com, sbhat@linux.ibm.com, vaibhav@linux.ibm.com
Subject: [RFC ndctl PATCH 1/9] test/common: Ensure to unload test modules
Date: Mon, 18 Apr 2022 12:10:03 -0500 [thread overview]
Message-ID: <165030179767.3224737.3430509039595994936.stgit@lep8c.aus.stglabs.ibm.com> (raw)
In-Reply-To: <165030175745.3224737.6985015146263991065.stgit@lep8c.aus.stglabs.ibm.com>
The _cleanup is easily missed to be called at places where trap
ERR is set, ex security.sh.
The patch moves all the modprobes into the _init in test/common
and sets the trap on exit for "any" of the reasons to invoke
_cleanup.
The patch also gracefully skips the test if the module load fails
instead of continuing, which otherwise makes the tests fail
erroneously in random places during the tests.
Signed-off-by: Shivaprasad G Bhat <sbhat@linux.ibm.com>
---
test/btt-check.sh | 3 +--
test/btt-errors.sh | 3 +--
test/btt-pad-compat.sh | 3 +--
test/clear.sh | 4 +---
test/common | 12 ++++++++++++
test/create.sh | 4 +---
test/daxdev-errors.sh | 4 +---
test/firmware-update.sh | 3 +--
test/inject-error.sh | 3 +--
test/inject-smart.sh | 3 +--
test/label-compat.sh | 4 +---
test/max_available_extent_ns.sh | 3 +--
test/monitor.sh | 3 +--
test/multi-dax.sh | 4 +---
test/pfn-meta-errors.sh | 3 +--
test/pmem-errors.sh | 3 +--
test/rescan-partitions.sh | 3 +--
test/sector-mode.sh | 4 +---
test/security.sh | 3 +--
test/track-uuid.sh | 3 +--
20 files changed, 31 insertions(+), 44 deletions(-)
diff --git a/test/btt-check.sh b/test/btt-check.sh
index 65b5c58b..1039d0eb 100755
--- a/test/btt-check.sh
+++ b/test/btt-check.sh
@@ -150,10 +150,9 @@ do_tests()
}
# setup (reset nfit_test dimms, create the BTT namespace)
-modprobe nfit_test
+_init
rc=1
reset && create
do_tests
reset
-_cleanup
exit 0
diff --git a/test/btt-errors.sh b/test/btt-errors.sh
index 18518d50..ea1a6627 100755
--- a/test/btt-errors.sh
+++ b/test/btt-errors.sh
@@ -42,7 +42,7 @@ mkdir -p $MNT
trap 'err $LINENO cleanup' ERR
# setup (reset nfit_test dimms)
-modprobe nfit_test
+_init
resetV
rc=1
@@ -144,5 +144,4 @@ dd if=/dev/$blockdev of=/dev/null iflag=direct bs=4096 count=1 && err $LINENO ||
# done, exit
reset
cleanup
-_cleanup
exit 0
diff --git a/test/btt-pad-compat.sh b/test/btt-pad-compat.sh
index 005316a2..de85fec7 100755
--- a/test/btt-pad-compat.sh
+++ b/test/btt-pad-compat.sh
@@ -172,11 +172,10 @@ do_tests()
ns_info_wipe
}
-modprobe nfit_test
+_init
check_prereq xxd
rc=1
reset
do_tests
reset
-_cleanup
exit 0
diff --git a/test/clear.sh b/test/clear.sh
index c4d02d54..9b785e35 100755
--- a/test/clear.sh
+++ b/test/clear.sh
@@ -13,7 +13,7 @@ check_min_kver "4.6" || do_skip "lacks clear poison support"
trap 'err $LINENO' ERR
# setup (reset nfit_test dimms)
-modprobe nfit_test
+_init
reset
rc=1
@@ -72,6 +72,4 @@ if check_min_kver "4.9"; then
fi
fi
-_cleanup
-
exit 0
diff --git a/test/common b/test/common
index fb487958..d3216a0c 100644
--- a/test/common
+++ b/test/common
@@ -113,6 +113,18 @@ _cleanup()
modprobe -r nfit_test
}
+_init()
+{
+ set +e
+ modprobe nfit_test
+ if [ $? -ne 0 ]; then
+ echo "Could not load the nfit_test module."
+ exit 77
+ fi
+ set -e
+ trap _cleanup EXIT INT TERM HUP PIPE
+}
+
# json2var
# stdin: json
#
diff --git a/test/create.sh b/test/create.sh
index 9a6f3733..c2fdee2e 100755
--- a/test/create.sh
+++ b/test/create.sh
@@ -14,7 +14,7 @@ check_min_kver "4.5" || do_skip "may lack namespace mode attribute"
trap 'err $LINENO' ERR
# setup (reset nfit_test dimms)
-modprobe nfit_test
+_init
reset
rc=1
@@ -40,6 +40,4 @@ eval $(echo $json | json2var)
# free capacity for blk creation
$NDCTL destroy-namespace -f $dev
-_cleanup
-
exit 0
diff --git a/test/daxdev-errors.sh b/test/daxdev-errors.sh
index 7f797181..f32f8b80 100755
--- a/test/daxdev-errors.sh
+++ b/test/daxdev-errors.sh
@@ -14,7 +14,7 @@ check_prereq "jq"
trap 'err $LINENO' ERR
# setup (reset nfit_test dimms)
-modprobe nfit_test
+_init
reset
rc=1
@@ -71,6 +71,4 @@ if read sector len < /sys/bus/platform/devices/nfit_test.0/$busdev/$region/badbl
fi
[ -n "$sector" ] && echo "fail: $LINENO" && exit 1
-_cleanup
-
exit 0
diff --git a/test/firmware-update.sh b/test/firmware-update.sh
index 93ce166e..1fac9dc1 100755
--- a/test/firmware-update.sh
+++ b/test/firmware-update.sh
@@ -70,11 +70,10 @@ do_tests()
check_min_kver "4.16" || do_skip "may lack firmware update test handling"
-modprobe nfit_test
+_init
fwupd_reset
detect
rc=1
do_tests
rm -f $image
-_cleanup
exit 0
diff --git a/test/inject-error.sh b/test/inject-error.sh
index fd823b6c..15d0dbe8 100755
--- a/test/inject-error.sh
+++ b/test/inject-error.sh
@@ -79,10 +79,9 @@ do_tests()
check_status
}
-modprobe nfit_test
+_init
rc=1
reset && create
do_tests
reset
-_cleanup
exit 0
diff --git a/test/inject-smart.sh b/test/inject-smart.sh
index 046322bf..80af058a 100755
--- a/test/inject-smart.sh
+++ b/test/inject-smart.sh
@@ -167,7 +167,7 @@ do_tests()
check_min_kver "4.19" || do_skip "kernel $KVER may not support smart (un)injection"
check_prereq "jq"
-modprobe nfit_test
+_init
rc=1
jlist=$($TEST_PATH/list-smart-dimm -b $bus)
@@ -175,5 +175,4 @@ dimm="$(jq '.[]."dev"?, ."dev"?' <<< $jlist | sort | head -1 | xargs)"
test -n "$dimm"
do_tests
-_cleanup
exit 0
diff --git a/test/label-compat.sh b/test/label-compat.sh
index 7ae4d5ef..4ccf69fa 100755
--- a/test/label-compat.sh
+++ b/test/label-compat.sh
@@ -15,7 +15,7 @@ check_prereq "jq"
trap 'err $LINENO' ERR
# setup (reset nfit_test dimms)
-modprobe nfit_test
+_init
$NDCTL disable-region -b $NFIT_TEST_BUS0 all
$NDCTL init-labels -f -b $NFIT_TEST_BUS0 all
@@ -43,6 +43,4 @@ if [ -z $len ]; then
exit 1
fi
-_cleanup
-
exit 0
diff --git a/test/max_available_extent_ns.sh b/test/max_available_extent_ns.sh
index 47a921f5..98235424 100755
--- a/test/max_available_extent_ns.sh
+++ b/test/max_available_extent_ns.sh
@@ -31,9 +31,8 @@ do_test()
$NDCTL create-namespace -r $region -t pmem
}
-modprobe nfit_test
+_init
rc=1
reset
do_test
-_cleanup
exit 0
diff --git a/test/monitor.sh b/test/monitor.sh
index e58c908b..10e65374 100755
--- a/test/monitor.sh
+++ b/test/monitor.sh
@@ -161,10 +161,9 @@ do_tests()
test_filter_dimmevent
}
-modprobe nfit_test
+_init
rc=1
reset
set_smart_supported_bus
do_tests
-_cleanup
exit 0
diff --git a/test/multi-dax.sh b/test/multi-dax.sh
index 04070adb..2b21c28c 100755
--- a/test/multi-dax.sh
+++ b/test/multi-dax.sh
@@ -16,7 +16,7 @@ trap 'err $LINENO' ERR
ALIGN_SIZE=`getconf PAGESIZE`
# setup (reset nfit_test dimms)
-modprobe nfit_test
+_init
reset
rc=1
@@ -28,6 +28,4 @@ chardev1=$(echo $json | jq ". | select(.mode == \"devdax\") | .daxregion.devices
json=$($NDCTL create-namespace -b $NFIT_TEST_BUS0 -r $region -t pmem -m devdax -a $ALIGN_SIZE -s 16M)
chardev2=$(echo $json | jq ". | select(.mode == \"devdax\") | .daxregion.devices[0].chardev")
-_cleanup
-
exit 0
diff --git a/test/pfn-meta-errors.sh b/test/pfn-meta-errors.sh
index 63148979..ccf5b7a1 100755
--- a/test/pfn-meta-errors.sh
+++ b/test/pfn-meta-errors.sh
@@ -28,7 +28,7 @@ set -e
trap 'err $LINENO' ERR
# setup (reset nfit_test dimms)
-modprobe nfit_test
+_init
reset
rc=1
@@ -67,5 +67,4 @@ if read -r sector len < "/sys/block/$raw_bdev/badblocks"; then
false
fi
-_cleanup
exit 0
diff --git a/test/pmem-errors.sh b/test/pmem-errors.sh
index 9a59c25d..550114ac 100755
--- a/test/pmem-errors.sh
+++ b/test/pmem-errors.sh
@@ -25,7 +25,7 @@ mkdir -p $MNT
trap 'err $LINENO cleanup' ERR
# setup (reset nfit_test dimms)
-modprobe nfit_test
+_init
reset
rc=1
@@ -110,6 +110,5 @@ echo $((start_sect + 1)) 1 > /sys/block/$blockdev/badblocks
dd if=$MNT/$FILE of=/dev/null iflag=direct bs=4096 count=1 && err $LINENO || true
cleanup
-_cleanup
exit 0
diff --git a/test/rescan-partitions.sh b/test/rescan-partitions.sh
index 51bbd731..f46e17ed 100755
--- a/test/rescan-partitions.sh
+++ b/test/rescan-partitions.sh
@@ -65,11 +65,10 @@ test_mode()
$NDCTL destroy-namespace $dev
}
-modprobe nfit_test
+_init
rc=1
reset
test_mode "raw"
test_mode "fsdax"
test_mode "sector"
-_cleanup
exit 0
diff --git a/test/sector-mode.sh b/test/sector-mode.sh
index f70b0f17..d4a62bf3 100755
--- a/test/sector-mode.sh
+++ b/test/sector-mode.sh
@@ -14,7 +14,7 @@ trap 'err $LINENO' ERR
ALIGN_SIZE=`getconf PAGESIZE`
# setup (reset nfit_test dimms)
-modprobe nfit_test
+_init
reset
reset1
@@ -27,6 +27,4 @@ NAMESPACE=$($NDCTL create-namespace --no-autolabel -r $REGION -m sector -f -l 4K
$NDCTL create-namespace --no-autolabel -e $NAMESPACE -m dax -f -a $ALIGN_SIZE
$NDCTL create-namespace --no-autolabel -e $NAMESPACE -m sector -f -l 4K
-_cleanup
-
exit 0
diff --git a/test/security.sh b/test/security.sh
index 34c4977b..7ae6e88c 100755
--- a/test/security.sh
+++ b/test/security.sh
@@ -246,7 +246,7 @@ if [ "$uid" -ne 0 ]; then
do_skip "run as root or with a sudo login shell for test to work"
fi
-modprobe nfit_test
+_init
setup
check_prereq "keyctl"
rc=1
@@ -275,5 +275,4 @@ test_6_load_keys
test_cleanup
post_cleanup
-_cleanup
exit 0
diff --git a/test/track-uuid.sh b/test/track-uuid.sh
index a967d0e4..954afe7c 100755
--- a/test/track-uuid.sh
+++ b/test/track-uuid.sh
@@ -11,7 +11,7 @@ set -e
trap 'err $LINENO' ERR
# setup (reset nfit_test dimms)
-modprobe nfit_test
+_init
reset
rc=1
@@ -34,5 +34,4 @@ $NDCTL disable-namespace $dev
uuidgen > /sys/bus/nd/devices/$dev/uuid
$NDCTL enable-namespace $dev
-_cleanup
exit 0
next prev parent reply other threads:[~2022-04-18 17:10 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-18 17:09 [RFC ndctl PATCH 0/9] test: Enable PAPR test family by default Shivaprasad G Bhat
2022-04-18 17:10 ` Shivaprasad G Bhat [this message]
2022-04-18 17:10 ` [RFC ndctl PATCH 2/9] test: core: Fix module unload failures Shivaprasad G Bhat
2022-04-18 17:10 ` [RFC ndctl PATCH 3/9] test: Unload the nfit module during cleanup Shivaprasad G Bhat
2022-04-18 17:10 ` [RFC ndctl PATCH 4/9] test: Introduce skip file to skip irrelevant tests Shivaprasad G Bhat
2022-04-18 17:10 ` [RFC ndctl PATCH 5/9] test: Assign provider name based on the test family Shivaprasad G Bhat
2022-04-18 17:11 ` [RFC ndctl PATCH 6/9] test: Enable PAPR test family tests after INTEL family tests Shivaprasad G Bhat
2022-04-18 17:15 ` [ndctl v3 PATCH 7/9] test/libndctl: Enable libndctl tests on ndtest Shivaprasad G Bhat
2022-04-18 17:17 ` [ndctl v3 PATCH 8/9] test/inject-smart: Enable inject-smart " Shivaprasad G Bhat
2022-04-18 17:19 ` [ndctl v3 PATCH 9/9] test/monitor.sh: Partially skip monitor test " Shivaprasad G Bhat
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=165030179767.3224737.3430509039595994936.stgit@lep8c.aus.stglabs.ibm.com \
--to=sbhat@linux.ibm.com \
--cc=aneesh.kumar@linux.ibm.com \
--cc=dan.j.williams@intel.com \
--cc=nvdimm@lists.linux.dev \
--cc=vaibhav@linux.ibm.com \
--cc=vishal.l.verma@intel.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.