aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2011-10-11 14:36:42 -0700
committerBrian Behlendorf <[email protected]>2011-10-11 14:45:37 -0700
commit5cbf6db937a304c4d2b60878a2405a1e2900abdf (patch)
tree4c5ae26bd32e8a7246c86115327aa1eb88d576cf
parent86f35f34f419f6eaff53b25f463c13f72186b103 (diff)
Disable 90-zfs.rules for test suitezfs-0.6.0-rc6
When running the zconfig.sh, zpios-sanity.sh, and zfault.sh from the installed packages the 90-zfs.rules can cause failures. These will occur because the test suite assumes it has full control over loading/unloading the module stack. If the stack gets asynchronously loaded by the udev rule the test suite will treat it as a failure. Resolve the issue by disabling the offending rule during the tests and enabling it on exit. Signed-off-by: Brian Behlendorf <[email protected]>
-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