]> git.ipfire.org Git - thirdparty/mdadm.git/blame - tests/10ddf-assemble-missing
tests: add test that DDF marks missing devices as failed on assembly.
[thirdparty/mdadm.git] / tests / 10ddf-assemble-missing
CommitLineData
c17d3b5c 1# An array is assembled incompletely.
2# The previously missing disks are then added again.
3# Nothing is written, so this should work cleanly.
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
15mdadm --wait $member0
16mdadm --wait $member1
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
26mdadm -IRs
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
39for d in $dev10 $dev8; do
40 mdadm -E $d>$tmp
41 for x in 0 1; do
42 egrep 'state\['$x'\] : Optimal, Consistent' $tmp || {
43 ret=1
44 echo ERROR: $member0 has unexpected state on $d
45 }
46 done
47 if [ x$(egrep -c 'active/Online$' $tmp) != x4 ]; then
48 ret=1
49 echo ERROR: unexpected number of online disks on $d
50 fi
51done
52
53if [ $ret -ne 0 ]; then
54 mdadm -E $dev10
55 mdadm -E $dev8
56fi
57rm -f $tmp /var/tmp/mdmon.log
58[ $ret -eq 0 ]