]> git.ipfire.org Git - thirdparty/mdadm.git/blame - tests/09imsm-create-fail-rebuild
tests, imsm: Set correct expected offset between volumes
[thirdparty/mdadm.git] / tests / 09imsm-create-fail-rebuild
CommitLineData
cceebc67
DW
1# sanity check array creation
2
3cdcfda4
N
3imsm_check_hold() {
4 if mdadm --remove $1 $2; then
5 echo "$2 removal from $1 should have been blocked" >&2
6 cat /proc/mdstat >&2
7 mdadm -E $2
8 exit 1
9 fi
10}
11
12imsm_check_removal() {
13 if ! mdadm --remove $1 $2 ; then
14 echo "$2 removal from $1 should have succeeded" >&2
15 cat /proc/mdstat >&2
16 mdadm -E $2
17 exit 1
18 fi
19}
20
67480d75 21. tests/env-imsm-template
3cdcfda4 22
6636f0ef
N
23# IMSM rounds to multiples of one mebibyte - 1024K
24DEV_ROUND_K=1024
25
cceebc67
DW
26num_disks=2
27mdadm -CR $container -e imsm -n $num_disks $dev0 $dev1
28imsm_check container $num_disks
29
30# RAID0 + RAID1
17f7da2f 31size=9000
cceebc67
DW
32level=0
33chunk=64
34offset=0
35mdadm -CR $member0 $dev0 $dev1 -n $num_disks -l $level -z $size -c $chunk
67480d75 36imsm_check member $member0 $num_disks $level $size $((size*2)) $offset $chunk
cceebc67
DW
37testdev $member0 $num_disks $size $chunk
38
6adfeaa7 39offset=$(((size & ~(chunk - 1)) + 4096))
17f7da2f 40size=4000
cceebc67
DW
41level=1
42chunk=0
43mdadm -CR $member1 $dev0 $dev1 -n $num_disks -l $level -z $size
67480d75 44imsm_check member $member1 $num_disks $level $size $size $offset $chunk
ae6c05ad 45testdev $member1 1 $size 64
cceebc67
DW
46check wait
47
48mdadm -Ss
49
50# RAID10 + RAID5
51num_disks=4
52mdadm -CR $container -e imsm -n $num_disks $dev0 $dev1 $dev2 $dev3
53imsm_check container $num_disks
54
17f7da2f 55size=9000
cceebc67
DW
56level=10
57chunk=64
58offset=0
59mdadm -CR $member0 $dev0 $dev1 $dev2 $dev3 -n $num_disks -l $level -z $size -c $chunk
67480d75 60imsm_check member $member0 $num_disks $level $size $((size*2)) $offset $chunk
cceebc67
DW
61testdev $member0 $((num_disks-2)) $size $chunk
62
6adfeaa7 63offset=$(((size & ~(chunk - 1)) + 4096))
17f7da2f 64size=4000
cceebc67
DW
65level=5
66mdadm -CR $member1 $dev0 $dev1 $dev2 $dev3 -n $num_disks -l $level -z $size -c $chunk
67480d75 67imsm_check member $member1 $num_disks $level $size $((size*3)) $offset $chunk
cceebc67
DW
68testdev $member1 $((num_disks-1)) $size $chunk
69check wait
70
71# FAIL / REBUILD
72imsm_check_hold $container $dev0
73mdadm --fail $member0 $dev0
3c899cab 74mdadm --wait-clean --scan || true
cceebc67
DW
75imsm_check_removal $container $dev0
76mdadm --add $container $dev4
77check wait
78imsm_check_hold $container $dev4