]> git.ipfire.org Git - thirdparty/mdadm.git/blame - tests/10ddf-assemble-missing
mdadm/test: Add one test case for raid5 reshape
[thirdparty/mdadm.git] / tests / 10ddf-assemble-missing
CommitLineData
c17d3b5c 1# An array is assembled incompletely.
a34c8836
N
2# Re missing disks get marked as missing and are not allowed back in
3
c17d3b5c 4. tests/env-ddf-template
5tmp=$(mktemp /tmp/mdtest-XXXXXX)
6rm -f $tmp /var/tmp/mdmon.log
7ret=0
8
9mdadm -CR $container -e ddf -n 4 $dev8 $dev9 $dev10 $dev11
10ddf_check container 4
11
12mdadm -CR $member1 -n 4 -l 10 $dev8 $dev10 $dev9 $dev11 -z 10000
13mdadm -CR $member0 -n 2 -l 1 $dev8 $dev9 -z 10000
14
3c899cab
N
15mdadm --wait $member0 || true
16mdadm --wait $member1 || true
c17d3b5c 17
18mdadm -Ss
19sleep 1
20
21# Add all devices except those for $member0
22mdadm -I $dev10
23mdadm -I $dev11
24
25# Start runnable members
7d63efc8 26mdadm -IRs || true
c17d3b5c 27mdadm -Ss
28
29#[ -f /var/tmp/mdmon.log ] && cat /var/tmp/mdmon.log
30
31# Now reassemble
32# This should work because BVDs weren't written to
33for d in $dev8 $dev9 $dev10 $dev11; do
34 mdadm -I $d
35done
36mdadm -Ss
37
38# Expect consistent state
a34c8836 39for d in $dev10 $dev11; do
c17d3b5c 40 mdadm -E $d>$tmp
a34c8836
N
41 egrep 'state\[0\] : Degraded, Consistent' $tmp || {
42 ret=1
43 echo ERROR: $member0 has unexpected state on $d
44 }
45 egrep 'state\[1\] : Optimal, Consistent' $tmp || {
46 ret=1
47 echo ERROR: $member1 has unexpected state on $d
48 }
49
50 if [ x$(egrep -c 'active/Online$' $tmp) != x2 ]; then
c17d3b5c 51 ret=1
52 echo ERROR: unexpected number of online disks on $d
53 fi
54done
55
56if [ $ret -ne 0 ]; then
57 mdadm -E $dev10
58 mdadm -E $dev8
59fi
60rm -f $tmp /var/tmp/mdmon.log
61[ $ret -eq 0 ]