summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2008-12-08 16:59:18 -0700
committerDan Williams <dan.j.williams@intel.com>2008-12-08 16:59:18 -0700
commit4b7a9ee3a1e45aeb3cdf8c829762e7de5e1b25ec (patch)
treeddfbc5f38fee0cbabbd463f456ccd3411fd808bd /test
parent4025c288b2622a589b4403a3158452d4a7bfa7fa (diff)
downloadmdadm-4b7a9ee3a1e45aeb3cdf8c829762e7de5e1b25ec.tar.gz
mdadm-4b7a9ee3a1e45aeb3cdf8c829762e7de5e1b25ec.tar.xz
mdadm-4b7a9ee3a1e45aeb3cdf8c829762e7de5e1b25ec.zip
test: enable per-test custom environment setup/teardown
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'test')
-rw-r--r--test18
1 files changed, 18 insertions, 0 deletions
diff --git a/test b/test
index f1555f7..f68a51d 100644
--- a/test
+++ b/test
@@ -63,6 +63,7 @@ do
eval dev$d=/dev/loop$d
eval file$d=$targetdir/mdtest$d
eval devlist=\"\$devlist \$dev$d\"
+ #" <-- add this quote to un-confuse vim syntax highlighting
done
path0=$dev6
path1=$dev7
@@ -171,7 +172,20 @@ rotest() {
fsck -fn $dev >&2
}
+setup_environment() {
+ if [ -f $1 ]; then
+ . $environment
+ setup_env
+ fi
+}
+reset_environment() {
+ if [ -f $1 ]; then
+ reset_env
+ unset setup_env
+ unset reset_env
+ fi
+}
for script in tests/$prefix tests/$prefix*[^~]
do
@@ -182,14 +196,18 @@ do
mdadm -Ssq
mdadm --zero $devlist 2> /dev/null
mdadm --zero $devlist 2> /dev/null
+ environment="tests/env-`basename $script`"
+ setup_environment $environment
# source script in a subshell, so it has access to our
# namespace, but cannot change it.
if ( set -ex ; . $script ) 2> $targetdir/log
then echo "$script succeeded"
else cat $targetdir/log ; cat $targetdir/stderr
echo "$script failed"
+ reset_environment $environment
exit 1
fi
+ reset_environment $environment
fi
done
exit 0