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:
parent
e5e5d7cea3
commit
3cdcfda4b0
19
test
19
test
|
@ -197,21 +197,6 @@ rotest() {
|
||||||
fsck -fn $dev >&2
|
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*[^~]
|
for script in tests/$prefix tests/$prefix*[^~]
|
||||||
do
|
do
|
||||||
if [ -f "$script" ]
|
if [ -f "$script" ]
|
||||||
|
@ -221,18 +206,14 @@ do
|
||||||
$mdadm -Ssq 2> /dev/null
|
$mdadm -Ssq 2> /dev/null
|
||||||
mdadm --zero $devlist 2> /dev/null
|
mdadm --zero $devlist 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
|
# source script in a subshell, so it has access to our
|
||||||
# namespace, but cannot change it.
|
# namespace, but cannot change it.
|
||||||
echo -ne "$script... "
|
echo -ne "$script... "
|
||||||
if ( set -ex ; . $script ) 2> $targetdir/log
|
if ( set -ex ; . $script ) 2> $targetdir/log
|
||||||
then echo "succeeded"
|
then echo "succeeded"
|
||||||
else echo "FAILED"
|
else echo "FAILED"
|
||||||
reset_environment $environment
|
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
reset_environment $environment
|
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
exit 0
|
exit 0
|
||||||
|
|
|
@ -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
|
# create raid arrays with varying degress of overlap
|
||||||
mdadm -CR $container -e imsm -n 6 $dev0 $dev1 $dev2 $dev3 $dev4 $dev5
|
mdadm -CR $container -e imsm -n 6 $dev0 $dev1 $dev2 $dev3 $dev4 $dev5
|
||||||
imsm_check container 6
|
imsm_check container 6
|
||||||
|
|
|
@ -1,5 +1,31 @@
|
||||||
# validate the prodigal member disk scenario i.e. a former container
|
# validate the prodigal member disk scenario i.e. a former container
|
||||||
# member is returned after having been rebuilt on another system
|
# 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
|
num_disks=4
|
||||||
size=$((10*1024))
|
size=$((10*1024))
|
||||||
mdadm -CR $container -e imsm -n $num_disks $dev0 $dev1 $dev2 $dev3
|
mdadm -CR $container -e imsm -n $num_disks $dev0 $dev1 $dev2 $dev3
|
||||||
|
|
|
@ -1,5 +1,90 @@
|
||||||
# sanity check array creation
|
# 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
|
# IMSM rounds to multiples of one mebibyte - 1024K
|
||||||
DEV_ROUND_K=1024
|
DEV_ROUND_K=1024
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,10 @@
|
||||||
# above number 7 bigger again by any amount (this is not changed for now as it
|
# above number 7 bigger again by any amount (this is not changed for now as it
|
||||||
# could affect other tests)
|
# could affect other tests)
|
||||||
|
|
||||||
|
export IMSM_DEVNAME_AS_SERIAL=1
|
||||||
|
export IMSM_TEST_OROM=1
|
||||||
|
export IMSM_NO_PLATFORM=1
|
||||||
|
|
||||||
. tests/utils
|
. tests/utils
|
||||||
set -ex
|
set -ex
|
||||||
verbose="yes"
|
verbose="yes"
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# RAID 0 volume, 2 disks grow to RAID 0 volume, 3 disks
|
# RAID 0 volume, 2 disks grow to RAID 0 volume, 3 disks
|
||||||
# POSITIVE test
|
# POSITIVE test
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# RAID 0 volume, 2 disks grow to RAID 0 volume, 4 disks
|
# RAID 0 volume, 2 disks grow to RAID 0 volume, 4 disks
|
||||||
# POSITIVE test
|
# POSITIVE test
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# RAID 0 volume, 2 disks grow to RAID 0 volume, 5 disks
|
# RAID 0 volume, 2 disks grow to RAID 0 volume, 5 disks
|
||||||
# POSITIVE test
|
# POSITIVE test
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# RAID 0 volume, 3 disks grow to RAID 0 volume, 4 disks
|
# RAID 0 volume, 3 disks grow to RAID 0 volume, 4 disks
|
||||||
# POSITIVE test
|
# POSITIVE test
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# RAID 5 volume, 3 disks grow to RAID 5 volume, 4 disks
|
# RAID 5 volume, 3 disks grow to RAID 5 volume, 4 disks
|
||||||
# POSITIVE test
|
# POSITIVE test
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# RAID 5 volume, 3 disks grow to RAID 5 volume, 5 disks
|
# RAID 5 volume, 3 disks grow to RAID 5 volume, 5 disks
|
||||||
# POSITIVE test
|
# POSITIVE test
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# Grow the container (arrays inside) from 2 disks to 4 disks
|
# Grow the container (arrays inside) from 2 disks to 4 disks
|
||||||
# POSITIVE test
|
# POSITIVE test
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# Grow both members from 2 disks to 5 disks
|
# Grow both members from 2 disks to 5 disks
|
||||||
# POSITIVE test
|
# POSITIVE test
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# Grow a container (arrays inside) from 3 disks to 4 disks
|
# Grow a container (arrays inside) from 3 disks to 4 disks
|
||||||
# POSITIVE test
|
# POSITIVE test
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# Grow the container (arrays inside) from 3 disks to 4 disks
|
# Grow the container (arrays inside) from 3 disks to 4 disks
|
||||||
# POSITIVE test
|
# POSITIVE test
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# Grow the container (arrays inside) from 3 disks to 5 disks
|
# Grow the container (arrays inside) from 3 disks to 5 disks
|
||||||
# POSITIVE test
|
# POSITIVE test
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# Grow the container (arrays inside) from 3 disks to 4 disks
|
# Grow the container (arrays inside) from 3 disks to 4 disks
|
||||||
# POSITIVE test
|
# POSITIVE test
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# Grow the container (arrays inside) from 3 disks to 5 disks
|
# Grow the container (arrays inside) from 3 disks to 5 disks
|
||||||
# POSITIVE test
|
# POSITIVE test
|
||||||
|
|
||||||
|
|
|
@ -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)
|
# 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
|
# NEGATIVE test - migration is not allowed if there is more then one array in a container
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# RAID 0 volume (3 disks, no spares) migrate to RAID 5 volume (3 disks)
|
# RAID 0 volume (3 disks, no spares) migrate to RAID 5 volume (3 disks)
|
||||||
# NEGATIVE test
|
# NEGATIVE test
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
|
|
||||||
# Two RAID 0 volumes (2 disks) migrate to RAID 10 volume (4 disks)
|
# Two RAID 0 volumes (2 disks) migrate to RAID 10 volume (4 disks)
|
||||||
# NEGATIVE test
|
# NEGATIVE test
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# RAID 10 volume, 4 disks grow to RAID 10 volume, 5 disks
|
# RAID 10 volume, 4 disks grow to RAID 10 volume, 5 disks
|
||||||
# NEGATIVE test
|
# NEGATIVE test
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
|
|
||||||
# Two RAID volumes: RAID10 and RAID5 (4 disks) migrate to RAID 0 volume (2 disks)
|
# Two RAID volumes: RAID10 and RAID5 (4 disks) migrate to RAID 0 volume (2 disks)
|
||||||
# NEGATIVE test
|
# NEGATIVE test
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# RAID 1 volume, 2 disks grow to RAID 1 volume, 3 disks
|
# RAID 1 volume, 2 disks grow to RAID 1 volume, 3 disks
|
||||||
# NEGATIVE test
|
# NEGATIVE test
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# RAID 1 volume, 2 disks change to RAID 0 volume, 2 disks
|
# RAID 1 volume, 2 disks change to RAID 0 volume, 2 disks
|
||||||
#
|
#
|
||||||
#NEGATIVE test
|
#NEGATIVE test
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# RAID 5 volume, 3 disks grow to RAID 5 volume, 4 disks
|
# RAID 5 volume, 3 disks grow to RAID 5 volume, 4 disks
|
||||||
# NEGATIVE test
|
# NEGATIVE test
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# RAID 5 volume (3 disks) migrate to RAID 4 volume (3 disks)
|
# RAID 5 volume (3 disks) migrate to RAID 4 volume (3 disks)
|
||||||
# NEGATIVE test
|
# NEGATIVE test
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# RAID 0 volume, Migration from 64k to 256k chunk size.
|
# RAID 0 volume, Migration from 64k to 256k chunk size.
|
||||||
# POSITIVE test
|
# POSITIVE test
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# RAID 5 volume, Migration from 4k to 256 chunk size.
|
# RAID 5 volume, Migration from 4k to 256 chunk size.
|
||||||
# POSITIVE test
|
# POSITIVE test
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# RAID 5 volume, Migration from 64k to 256k chunk size.
|
# RAID 5 volume, Migration from 64k to 256k chunk size.
|
||||||
# POSITIVE test
|
# POSITIVE test
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# RAID 5 volume, Migration from 4k to 256k chunk size.
|
# RAID 5 volume, Migration from 4k to 256k chunk size.
|
||||||
# POSITIVE test
|
# POSITIVE test
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# Member 0: RAID 5 volume, Member 1: RAID 0 volume
|
# Member 0: RAID 5 volume, Member 1: RAID 0 volume
|
||||||
# Migration from 64k to 256k chunk size (both members)
|
# Migration from 64k to 256k chunk size (both members)
|
||||||
# POSITIVE test
|
# POSITIVE test
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# RAID 0 volume (3 disks) migrate to RAID 5 volume (4 disks)
|
# RAID 0 volume (3 disks) migrate to RAID 5 volume (4 disks)
|
||||||
# POSITIVE test
|
# POSITIVE test
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# RAID 0 volume (5 disks) migrate to RAID 5 volume (6 disks)
|
# RAID 0 volume (5 disks) migrate to RAID 5 volume (6 disks)
|
||||||
# POSITIVE test
|
# POSITIVE test
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# RAID 5 volume (3 disks) migrate to RAID 0 volume (3 disks)
|
# RAID 5 volume (3 disks) migrate to RAID 0 volume (3 disks)
|
||||||
# POSITIVE test
|
# POSITIVE test
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# RAID 5 volume (5 disks) migration to RAID 0 volume (5 disks)
|
# RAID 5 volume (5 disks) migration to RAID 0 volume (5 disks)
|
||||||
# POSITIVE test
|
# POSITIVE test
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# Create RAID 0 from a single disk.
|
# Create RAID 0 from a single disk.
|
||||||
# POSITIVE test
|
# POSITIVE test
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# Create RAID 1 from a single disk
|
# Create RAID 1 from a single disk
|
||||||
# POSITIVE test
|
# POSITIVE test
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# RAID 0 volume, 2 disks change to RAID 10 volume, 4 disks
|
# RAID 0 volume, 2 disks change to RAID 10 volume, 4 disks
|
||||||
# POSITIVE test
|
# POSITIVE test
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
. tests/env-imsm-template
|
||||||
|
|
||||||
# RAID 10 volume, 4 disks change to RAID 0 volume, 2 disks
|
# RAID 10 volume, 4 disks change to RAID 0 volume, 2 disks
|
||||||
# POSITIVE test
|
# POSITIVE test
|
||||||
|
|
||||||
|
|
|
@ -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
|
|
||||||
}
|
|
|
@ -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
|
|
||||||
}
|
|
|
@ -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
|
|
||||||
}
|
|
|
@ -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
|
|
||||||
}
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -1 +0,0 @@
|
||||||
env-imsm-template
|
|
|
@ -62,24 +62,10 @@ imsm_check() {
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
setup_env() {
|
export IMSM_NO_PLATFORM=1
|
||||||
export IMSM_NO_PLATFORM=1
|
export IMSM_DEVNAME_AS_SERIAL=1
|
||||||
export IMSM_DEVNAME_AS_SERIAL=1
|
export IMSM_TEST_OROM=1
|
||||||
export IMSM_TEST_OROM=1
|
export MDADM_EXPERIMENTAL=1
|
||||||
export MDADM_EXPERIMENTAL=1
|
container=/dev/md/container
|
||||||
container=/dev/md/container
|
member0=/dev/md/vol0
|
||||||
member0=/dev/md/vol0
|
member1=/dev/md/vol1
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue