]> git.ipfire.org Git - thirdparty/mdadm.git/blame - tests/10ddf-fail-twice
Create.c: fix uclibc build
[thirdparty/mdadm.git] / tests / 10ddf-fail-twice
CommitLineData
57631ca2 1. tests/env-ddf-template
2
3num_disks=5
4mdadm -CR $container -e ddf -n $num_disks $dev8 $dev9 $dev10 $dev11 $dev12
5ddf_check container $num_disks
6
7mdadm -CR $member0 -n 2 -l 1 $container
8mdadm -CR $member1 -n 3 -l 5 $container
9
3c899cab 10mdadm --wait $member1 $member0 || mdadm --wait $member1 $member0 || true
57631ca2 11
635ac286 12set -- $(get_raiddisks $member0)
13fail0=$1
14mdadm $member0 --fail $fail0
15set -- $(get_raiddisks $member1)
16fail1=$1
17mdadm $member1 --fail $fail1
57631ca2 18
19mdadm $container --add $dev13
20
3c899cab 21mdadm --wait $member1 $member0 || mdadm --wait $member1 $member0 || true
57631ca2 22
635ac286 23
24devs0="$(get_raiddisks $member0)"
25devs1="$(get_raiddisks $member1)"
26
27present=$(($(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
57631ca2 33}
34
635ac286 35if echo "$devs0" | grep -q MISSING; then
36 good=1
37 bad=0
38else
39 good=0
40 bad=1
41fi
42
43# find a good device
44eval "set -- \$devs$good"
45check=$1
46
47tmp=$(mktemp /tmp/mdtest-XXXXXX)
48mdadm -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
57631ca2 55 exit 1
56}
57
635ac286 58rm -f $tmp
57631ca2 59exit 0