summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--scripts/common.sh.in16
-rwxr-xr-xscripts/zconfig.sh3
-rwxr-xr-xscripts/zfault.sh3
-rwxr-xr-xscripts/zpios-sanity.sh3
4 files changed, 25 insertions, 0 deletions
diff --git a/scripts/common.sh.in b/scripts/common.sh.in
index 51671ebc0..56706194c 100644
--- a/scripts/common.sh.in
+++ b/scripts/common.sh.in
@@ -36,6 +36,9 @@ libexecdir=@libexecdir@
pkglibexecdir=${libexecdir}/@PACKAGE@
bindir=@bindir@
sbindir=@sbindir@
+udevdir=@udevdir@
+udevruledir=@udevruledir@
+sysconfdir=@sysconfdir@
ETCDIR=${ETCDIR:-/etc}
DEVDIR=${DEVDIR:-/dev/disk/zpool}
@@ -113,6 +116,19 @@ skip() {
echo -e "${COLOR_BROWN}Skip${COLOR_RESET}"
}
+init() {
+ # Disable the udev rule 90-zfs.rules to prevent the zfs module
+ # stack from being loaded due to the detection of a zfs device.
+ # This is important because the test scripts require full control
+ # over when and how the modules are loaded/unloaded. A trap is
+ # set to ensure the udev rule is correctly replaced on exit.
+ local RULE=${udevruledir}/90-zfs.rules
+ if test -e ${RULE}; then
+ trap "mv ${RULE}.disabled ${RULE}; exit $?" INT TERM EXIT
+ mv ${RULE} ${RULE}.disabled
+ fi
+}
+
spl_dump_log() {
${SYSCTL} -w kernel.spl.debug.dump=1 &>/dev/null
local NAME=`dmesg | tail -n 1 | cut -f5 -d' '`
diff --git a/scripts/zconfig.sh b/scripts/zconfig.sh
index f635423dd..80f7e4570 100755
--- a/scripts/zconfig.sh
+++ b/scripts/zconfig.sh
@@ -60,6 +60,9 @@ if [ $(id -u) != 0 ]; then
die "Must run as root"
fi
+# Initialize the test suite
+init
+
# Perform pre-cleanup is requested
if [ ${CLEANUP} ]; then
${ZFS_SH} -u
diff --git a/scripts/zfault.sh b/scripts/zfault.sh
index da4f16f4f..a5f1f3cb1 100755
--- a/scripts/zfault.sh
+++ b/scripts/zfault.sh
@@ -86,6 +86,9 @@ if [ $(id -u) != 0 ]; then
die "Must run as root"
fi
+# Initialize the test suite
+init
+
# Perform pre-cleanup is requested
if [ ${CLEANUP} ]; then
${ZFS_SH} -u
diff --git a/scripts/zpios-sanity.sh b/scripts/zpios-sanity.sh
index fcd91b6e6..0f441157d 100755
--- a/scripts/zpios-sanity.sh
+++ b/scripts/zpios-sanity.sh
@@ -62,6 +62,9 @@ if [ $(id -u) != 0 ]; then
die "Must run as root"
fi
+# Initialize the test suite
+init
+
# Perform pre-cleanup is requested
if [ ${CLEANUP} ]; then
${ZFS_SH} -u