]> git.ipfire.org Git - thirdparty/mdadm.git/blob - tests/10ddf-fail-twice
config: new option to suppress adding bad block lists.
[thirdparty/mdadm.git] / tests / 10ddf-fail-twice
1 . tests/env-ddf-template
2
3 num_disks=5
4 mdadm -CR $container -e ddf -n $num_disks $dev8 $dev9 $dev10 $dev11 $dev12
5 ddf_check container $num_disks
6
7 mdadm -CR $member0 -n 2 -l 1 $container
8 mdadm -CR $member1 -n 3 -l 5 $container
9
10 mdadm --wait $member1 $member0 || mdadm --wait $member1 $member0
11
12 set -- $(get_raiddisks $member0)
13 fail0=$1
14 mdadm $member0 --fail $fail0
15 set -- $(get_raiddisks $member1)
16 fail1=$1
17 mdadm $member1 --fail $fail1
18
19 mdadm $container --add $dev13
20
21 mdadm --wait $member1 $member0 || mdadm --wait $member1 $member0
22
23
24 devs0="$(get_raiddisks $member0)"
25 devs1="$(get_raiddisks $member1)"
26
27 present=$(($(get_present $member0) + $(get_present $member1)))
28 [ $present -eq 4 ] || {
29 echo expected 4 present disks, got $present
30 devices for $member0: $devs0
31 devices for $member1: $devs1
32 exit 1
33 }
34
35 if echo "$devs0" | grep -q MISSING; then
36 good=1
37 bad=0
38 else
39 good=0
40 bad=1
41 fi
42
43 # find a good device
44 eval "set -- \$devs$good"
45 check=$1
46
47 tmp=$(mktemp /tmp/mdtest-XXXXXX)
48 mdadm -E $check >$tmp
49
50 { grep -q 'state\['$bad'\] : Degraded, Consistent' $tmp &&
51 grep -q 'state\['$good'\] : Optimal, Consistent' $tmp; } || {
52 echo unexpected meta data state on $check
53 mdadm -E $check
54 rm -f $tmp
55 exit 1
56 }
57
58 rm -f $tmp
59 exit 0