]> git.ipfire.org Git - thirdparty/mdadm.git/blob - tests/09imsm-create-fail-rebuild
Remove lots of unnecessary white space.
[thirdparty/mdadm.git] / tests / 09imsm-create-fail-rebuild
1 # sanity check array creation
2
3 imsm_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
12 imsm_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
21 . tests/env-imsm-template
22
23 # IMSM rounds to multiples of one mebibyte - 1024K
24 DEV_ROUND_K=1024
25
26 num_disks=2
27 mdadm -CR $container -e imsm -n $num_disks $dev0 $dev1
28 imsm_check container $num_disks
29
30 # RAID0 + RAID1
31 size=9000
32 level=0
33 chunk=64
34 offset=0
35 mdadm -CR $member0 $dev0 $dev1 -n $num_disks -l $level -z $size -c $chunk
36 imsm_check member $member0 $num_disks $level $size $((size*2)) $offset $chunk
37 testdev $member0 $num_disks $size $chunk
38
39 offset=$(((size & ~(chunk - 1)) + 2048))
40 size=4000
41 level=1
42 chunk=0
43 mdadm -CR $member1 $dev0 $dev1 -n $num_disks -l $level -z $size
44 imsm_check member $member1 $num_disks $level $size $size $offset $chunk
45 testdev $member1 1 $size 64
46 check wait
47
48 mdadm -Ss
49
50 # RAID10 + RAID5
51 num_disks=4
52 mdadm -CR $container -e imsm -n $num_disks $dev0 $dev1 $dev2 $dev3
53 imsm_check container $num_disks
54
55 size=9000
56 level=10
57 chunk=64
58 offset=0
59 mdadm -CR $member0 $dev0 $dev1 $dev2 $dev3 -n $num_disks -l $level -z $size -c $chunk
60 imsm_check member $member0 $num_disks $level $size $((size*2)) $offset $chunk
61 testdev $member0 $((num_disks-2)) $size $chunk
62
63 offset=$(((size & ~(chunk - 1)) + 2048))
64 size=4000
65 level=5
66 mdadm -CR $member1 $dev0 $dev1 $dev2 $dev3 -n $num_disks -l $level -z $size -c $chunk
67 imsm_check member $member1 $num_disks $level $size $((size*3)) $offset $chunk
68 testdev $member1 $((num_disks-1)) $size $chunk
69 check wait
70
71 # FAIL / REBUILD
72 imsm_check_hold $container $dev0
73 mdadm --fail $member0 $dev0
74 mdadm --wait-clean --scan
75 imsm_check_removal $container $dev0
76 mdadm --add $container $dev4
77 check wait
78 imsm_check_hold $container $dev4