test: remove all the environment handling.

Instead, just include the environ explicitly in the test file
or, where shared, source the shared file.

Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
NeilBrown 2011-02-01 14:43:59 +11:00
parent e5e5d7cea3
commit 3cdcfda4b0
84 changed files with 248 additions and 288 deletions

19
test
View File

@ -197,21 +197,6 @@ 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
if [ -f "$script" ]
@ -221,18 +206,14 @@ do
$mdadm -Ssq 2> /dev/null
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.
echo -ne "$script... "
if ( set -ex ; . $script ) 2> $targetdir/log
then echo "succeeded"
else echo "FAILED"
reset_environment $environment
exit 1
fi
reset_environment $environment
fi
done
exit 0

View File

@ -1,3 +1,59 @@
imsm_check() {
case $1 in
container )
grep -s "$(((418 * $2)/2)) blocks super external:imsm" /proc/mdstat > /dev/null || {
echo >&2 "ERROR correctly formed container not found"; cat /proc/mdstat; exit 1;}
;;
member )
member=$2
num_disks=$3
level=$4
size=$5
offset=$6
err=0
eval `stat -L -c "let major=0x%t; let minor=0x%T;" $member`
sysfs=/sys/dev/block/${major}:${minor}
if [ ! -f ${sysfs}/md/array_state ]; then
echo "member array $member not found" >&2
cat /proc/mdstat >&2
exit 1
fi
for i in `seq 0 $((num_disks-1))`
do
_offset=`cat ${sysfs}/md/rd${i}/offset`
if [ $offset -ne $((_offset/2)) ]; then
echo "offset mismatch expected $offset got $_offset" >&2
err=$((err+1))
fi
_size=`cat ${sysfs}/md/rd${i}/size`
if [ $size -ne $_size ]; then
echo "offset mismatch expected $size got $_size" >&2
err=$((err+1))
fi
done
if [ $err -gt 0 ]; then
echo "$member failed check" >&2
cat /proc/mdstat >&2
mdadm -E /dev/loop0 >&2
exit 1
fi
;;
* ) echo >&2 ERROR unknown check $1 ; exit 1;
esac
}
export IMSM_DEVNAME_AS_SERIAL=1
export IMSM_NO_PLATFORM=1
container=/dev/md/container
member0=/dev/md/vol0
member1=/dev/md/vol1
member2=/dev/md/vol2
member3=/dev/md/vol3
member4=/dev/md/vol4
# create raid arrays with varying degress of overlap
mdadm -CR $container -e imsm -n 6 $dev0 $dev1 $dev2 $dev3 $dev4 $dev5
imsm_check container 6

View File

@ -1,5 +1,31 @@
# validate the prodigal member disk scenario i.e. a former container
# member is returned after having been rebuilt on another system
imsm_check_hold() {
if mdadm --remove $1 $2; then
echo "$2 removal from $1 should have been blocked" >&2
cat /proc/mdstat >&2
mdadm -E $2
exit 1
fi
}
imsm_check_removal() {
if ! mdadm --remove $1 $2 ; then
echo "$2 removal from $1 should have succeeded" >&2
cat /proc/mdstat >&2
mdadm -E $2
exit 1
fi
}
export IMSM_DEVNAME_AS_SERIAL=1
export IMSM_TEST_OROM=1
container=/dev/md/container
member=/dev/md/vol0
num_disks=4
size=$((10*1024))
mdadm -CR $container -e imsm -n $num_disks $dev0 $dev1 $dev2 $dev3

View File

@ -1,5 +1,90 @@
# sanity check array creation
imsm_check_hold() {
if mdadm --remove $1 $2; then
echo "$2 removal from $1 should have been blocked" >&2
cat /proc/mdstat >&2
mdadm -E $2
exit 1
fi
}
imsm_check_removal() {
if ! mdadm --remove $1 $2 ; then
echo "$2 removal from $1 should have succeeded" >&2
cat /proc/mdstat >&2
mdadm -E $2
exit 1
fi
}
imsm_check() {
udevadm settle
case $1 in
container )
grep -s "$(((418 * $2)/2)) blocks super external:imsm" /proc/mdstat > /dev/null || {
echo >&2 "ERROR correctly formed container not found"; cat /proc/mdstat; exit 1;}
;;
member )
member=$2
num_disks=$3
level=$4
size=$5
offset=$6
chunk=$7
err=0
if [ $level -ne 1 ]; then
size=$((size & ~(chunk - 1)))
else
chunk=64
fi
eval `stat -L -c "let major=0x%t; let minor=0x%T;" $member`
sysfs=/sys/dev/block/${major}:${minor}
if [ ! -f ${sysfs}/md/array_state ]; then
echo "member array $member not found" >&2
cat /proc/mdstat >&2
exit 1
fi
_chunk=`cat ${sysfs}/md/chunk_size`
if [ $chunk -ne $((_chunk/1024)) ]; then
echo "chunk mismatch expected $chunk got $_chunk" >&2
err=$((err+1))
fi
for i in `seq 0 $((num_disks-1))`
do
_offset=`cat ${sysfs}/md/rd${i}/offset`
if [ $offset -ne $((_offset/2)) ]; then
echo "offset mismatch expected $offset got $_offset" >&2
err=$((err+1))
fi
_size=`cat ${sysfs}/md/rd${i}/size`
if [ $size -ne $_size ]; then
echo "size mismatch expected $size got $_size" >&2
err=$((err+1))
fi
done
if [ $err -gt 0 ]; then
echo "$member failed check" >&2
cat /proc/mdstat >&2
mdadm -E /dev/loop0 >&2
exit 1
fi
;;
* ) echo >&2 ERROR unknown check $1 ; exit 1;
esac
}
export IMSM_DEVNAME_AS_SERIAL=1
export IMSM_TEST_OROM=1
container=/dev/md/container
member0=/dev/md/vol0
member1=/dev/md/vol1
member2=/dev/md/vol2
member3=/dev/md/vol3
member4=/dev/md/vol4
# IMSM rounds to multiples of one mebibyte - 1024K
DEV_ROUND_K=1024

View File

@ -3,6 +3,10 @@
# above number 7 bigger again by any amount (this is not changed for now as it
# could affect other tests)
export IMSM_DEVNAME_AS_SERIAL=1
export IMSM_TEST_OROM=1
export IMSM_NO_PLATFORM=1
. tests/utils
set -ex
verbose="yes"

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# RAID 0 volume, 2 disks grow to RAID 0 volume, 3 disks
# POSITIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# RAID 0 volume, 2 disks grow to RAID 0 volume, 4 disks
# POSITIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# RAID 0 volume, 2 disks grow to RAID 0 volume, 5 disks
# POSITIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# RAID 0 volume, 3 disks grow to RAID 0 volume, 4 disks
# POSITIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# RAID 5 volume, 3 disks grow to RAID 5 volume, 4 disks
# POSITIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# RAID 5 volume, 3 disks grow to RAID 5 volume, 5 disks
# POSITIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# Grow the container (arrays inside) from 2 disks to 4 disks
# POSITIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# Grow both members from 2 disks to 5 disks
# POSITIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# Grow a container (arrays inside) from 3 disks to 4 disks
# POSITIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# Grow the container (arrays inside) from 3 disks to 4 disks
# POSITIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# Grow the container (arrays inside) from 3 disks to 5 disks
# POSITIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# Grow the container (arrays inside) from 3 disks to 4 disks
# POSITIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# Grow the container (arrays inside) from 3 disks to 5 disks
# POSITIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# RAID 0 and RAID 5 volumes (3 disks) migrate to RAID 5 and RAID 5 volumes (4 disks)
# NEGATIVE test - migration is not allowed if there is more then one array in a container

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# RAID 0 volume (3 disks, no spares) migrate to RAID 5 volume (3 disks)
# NEGATIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# Two RAID 0 volumes (2 disks) migrate to RAID 10 volume (4 disks)
# NEGATIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# RAID 10 volume, 4 disks grow to RAID 10 volume, 5 disks
# NEGATIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# Two RAID volumes: RAID10 and RAID5 (4 disks) migrate to RAID 0 volume (2 disks)
# NEGATIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# RAID 1 volume, 2 disks grow to RAID 1 volume, 3 disks
# NEGATIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# RAID 1 volume, 2 disks change to RAID 0 volume, 2 disks
#
#NEGATIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# RAID 5 volume, 3 disks grow to RAID 5 volume, 4 disks
# NEGATIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# RAID 5 volume (3 disks) migrate to RAID 4 volume (3 disks)
# NEGATIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# RAID 0 volume, Migration from 64k to 256k chunk size.
# POSITIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# RAID 5 volume, Migration from 4k to 256 chunk size.
# POSITIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# RAID 5 volume, Migration from 64k to 256k chunk size.
# POSITIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# RAID 5 volume, Migration from 4k to 256k chunk size.
# POSITIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# Member 0: RAID 5 volume, Member 1: RAID 0 volume
# Migration from 64k to 256k chunk size (both members)
# POSITIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# RAID 0 volume (3 disks) migrate to RAID 5 volume (4 disks)
# POSITIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# RAID 0 volume (5 disks) migrate to RAID 5 volume (6 disks)
# POSITIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# RAID 5 volume (3 disks) migrate to RAID 0 volume (3 disks)
# POSITIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# RAID 5 volume (5 disks) migration to RAID 0 volume (5 disks)
# POSITIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# Create RAID 0 from a single disk.
# POSITIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# Create RAID 1 from a single disk
# POSITIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# RAID 0 volume, 2 disks change to RAID 10 volume, 4 disks
# POSITIVE test

View File

@ -1,3 +1,5 @@
. tests/env-imsm-template
# RAID 10 volume, 4 disks change to RAID 0 volume, 2 disks
# POSITIVE test

View File

@ -1,68 +0,0 @@
imsm_check() {
case $1 in
container )
grep -s "$(((418 * $2)/2)) blocks super external:imsm" /proc/mdstat > /dev/null || {
echo >&2 "ERROR correctly formed container not found"; cat /proc/mdstat; exit 1;}
;;
member )
member=$2
num_disks=$3
level=$4
size=$5
offset=$6
err=0
eval `stat -L -c "let major=0x%t; let minor=0x%T;" $member`
sysfs=/sys/dev/block/${major}:${minor}
if [ ! -f ${sysfs}/md/array_state ]; then
echo "member array $member not found" >&2
cat /proc/mdstat >&2
exit 1
fi
for i in `seq 0 $((num_disks-1))`
do
_offset=`cat ${sysfs}/md/rd${i}/offset`
if [ $offset -ne $((_offset/2)) ]; then
echo "offset mismatch expected $offset got $_offset" >&2
err=$((err+1))
fi
_size=`cat ${sysfs}/md/rd${i}/size`
if [ $size -ne $_size ]; then
echo "offset mismatch expected $size got $_size" >&2
err=$((err+1))
fi
done
if [ $err -gt 0 ]; then
echo "$member failed check" >&2
cat /proc/mdstat >&2
mdadm -E /dev/loop0 >&2
exit 1
fi
;;
* ) echo >&2 ERROR unknown check $1 ; exit 1;
esac
}
setup_env() {
export IMSM_DEVNAME_AS_SERIAL=1
export IMSM_NO_PLATFORM=1
container=/dev/md/container
member0=/dev/md/vol0
member1=/dev/md/vol1
member2=/dev/md/vol2
member3=/dev/md/vol3
member4=/dev/md/vol4
}
reset_env() {
unset IMSM_DEVNAME_AS_SERIAL
unset IMSM_NO_PLATFORM
unset imsm_check
unset container
unset member0
unset member1
unset member2
unset member3
unset member4
}

View File

@ -1,32 +0,0 @@
imsm_check_hold() {
if mdadm --remove $1 $2; then
echo "$2 removal from $1 should have been blocked" >&2
cat /proc/mdstat >&2
mdadm -E $2
exit 1
fi
}
imsm_check_removal() {
if ! mdadm --remove $1 $2 ; then
echo "$2 removal from $1 should have succeeded" >&2
cat /proc/mdstat >&2
mdadm -E $2
exit 1
fi
}
setup_env() {
export IMSM_DEVNAME_AS_SERIAL=1
export IMSM_TEST_OROM=1
container=/dev/md/container
member=/dev/md/vol0
}
reset_env() {
unset IMSM_DEVNAME_AS_SERIAL
unset IMSM_TEST_OROM
unset imsm_check
unset container
unset member
}

View File

@ -1,98 +0,0 @@
imsm_check_hold() {
if mdadm --remove $1 $2; then
echo "$2 removal from $1 should have been blocked" >&2
cat /proc/mdstat >&2
mdadm -E $2
exit 1
fi
}
imsm_check_removal() {
if ! mdadm --remove $1 $2 ; then
echo "$2 removal from $1 should have succeeded" >&2
cat /proc/mdstat >&2
mdadm -E $2
exit 1
fi
}
imsm_check() {
udevadm settle
case $1 in
container )
grep -s "$(((418 * $2)/2)) blocks super external:imsm" /proc/mdstat > /dev/null || {
echo >&2 "ERROR correctly formed container not found"; cat /proc/mdstat; exit 1;}
;;
member )
member=$2
num_disks=$3
level=$4
size=$5
offset=$6
chunk=$7
err=0
if [ $level -ne 1 ]; then
size=$((size & ~(chunk - 1)))
else
chunk=64
fi
eval `stat -L -c "let major=0x%t; let minor=0x%T;" $member`
sysfs=/sys/dev/block/${major}:${minor}
if [ ! -f ${sysfs}/md/array_state ]; then
echo "member array $member not found" >&2
cat /proc/mdstat >&2
exit 1
fi
_chunk=`cat ${sysfs}/md/chunk_size`
if [ $chunk -ne $((_chunk/1024)) ]; then
echo "chunk mismatch expected $chunk got $_chunk" >&2
err=$((err+1))
fi
for i in `seq 0 $((num_disks-1))`
do
_offset=`cat ${sysfs}/md/rd${i}/offset`
if [ $offset -ne $((_offset/2)) ]; then
echo "offset mismatch expected $offset got $_offset" >&2
err=$((err+1))
fi
_size=`cat ${sysfs}/md/rd${i}/size`
if [ $size -ne $_size ]; then
echo "size mismatch expected $size got $_size" >&2
err=$((err+1))
fi
done
if [ $err -gt 0 ]; then
echo "$member failed check" >&2
cat /proc/mdstat >&2
mdadm -E /dev/loop0 >&2
exit 1
fi
;;
* ) echo >&2 ERROR unknown check $1 ; exit 1;
esac
}
setup_env() {
export IMSM_DEVNAME_AS_SERIAL=1
export IMSM_TEST_OROM=1
container=/dev/md/container
member0=/dev/md/vol0
member1=/dev/md/vol1
member2=/dev/md/vol2
member3=/dev/md/vol3
member4=/dev/md/vol4
}
reset_env() {
unset IMSM_DEVNAME_AS_SERIAL
unset IMSM_TEST_OROM
unset imsm_check
unset container
unset member0
unset member1
unset member2
unset member3
unset member4
}

View File

@ -1,11 +0,0 @@
setup_env() {
export IMSM_DEVNAME_AS_SERIAL=1
export IMSM_TEST_OROM=1
export IMSM_NO_PLATFORM=1
}
reset_env() {
unset IMSM_DEVNAME_AS_SERIAL
unset IMSM_TEST_OROM
unset IMSM_NO_PLATFORM
}

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -1 +0,0 @@
env-imsm-template

View File

@ -62,24 +62,10 @@ imsm_check() {
esac
}
setup_env() {
export IMSM_NO_PLATFORM=1
export IMSM_DEVNAME_AS_SERIAL=1
export IMSM_TEST_OROM=1
export MDADM_EXPERIMENTAL=1
container=/dev/md/container
member0=/dev/md/vol0
member1=/dev/md/vol1
}
reset_env() {
unset IMSM_NO_PLATFORM
unset IMSM_DENAME_AS_SERIAL
unset IMSM_TEST_OROM
unset MDADM_EXPERIMENTAL
unset member0
unset member1
unset imsm_check
unset container
rm -f /tmp/backup_imsm
}
export IMSM_NO_PLATFORM=1
export IMSM_DEVNAME_AS_SERIAL=1
export IMSM_TEST_OROM=1
export MDADM_EXPERIMENTAL=1
container=/dev/md/container
member0=/dev/md/vol0
member1=/dev/md/vol1