]> git.ipfire.org Git - thirdparty/mdadm.git/blame - tests/10ddf-create
Grow: fix a couple of typos with --assume-clean usage
[thirdparty/mdadm.git] / tests / 10ddf-create
CommitLineData
78e3d2a3
N
1#
2# Test basic DDF functionality.
3#
4# Create a container with 5 drives
5# create a small raid0 across them all, then a 2disk raid1
6# and a 3disk raid5 using the remaining space
7#
8# add some data, tear down the array, reassemble
9# and make sure it is still there.
4c821454 10set -e
78e3d2a3
N
11
12mdadm -CR /dev/md/ddf0 -e ddf -n 5 $dev8 $dev9 $dev10 $dev11 $dev12
13mdadm -CR r0 -l0 -n5 /dev/md/ddf0 -z 5000
97c9c100
N
14if mdadm -CR r0 -l1 -n2 /dev/md/ddf0 -z 5000
15then echo >&2 create with same name should fail ; exit 1
16fi
78e3d2a3
N
17mdadm -CR r1 -l1 -n2 /dev/md/ddf0
18mdadm -CR r5 -l5 -n3 /dev/md/ddf0
5f175898
N
19testdev /dev/md/r0 5 5000 512
20# r0 will use 4608 due to chunk size, so that leaves 28160 for the rest
ae6c05ad 21testdev /dev/md/r1 1 28160 64
5f175898 22testdev /dev/md/r5 2 28160 512
78e3d2a3
N
23dd if=/dev/sda of=/dev/md/r0 || true
24dd if=/dev/sda of=/dev/md/r1 || true
25dd if=/dev/sda of=/dev/md/r5 || true
26
27s0=`sha1sum /dev/md/r0`
28s1=`sha1sum /dev/md/r1`
29s5=`sha1sum /dev/md/r5`
30
31
32mdadm -Ss
33mdadm -A /dev/md/ddf0 $dev8 $dev9 $dev10 $dev11 $dev12
34mdadm -I /dev/md/ddf0
35
af538d59 36udevadm settle
78e3d2a3
N
37s0a=`sha1sum /dev/md/r0`
38s1a=`sha1sum /dev/md/r1`
39s5a=`sha1sum /dev/md/r5`
40
41if [ "$s0" != "$s0a" ]; then
42 echo r0 did not match ; exit 1;
43fi
44if [ "$s1" != "$s1a" ]; then
45 echo r1 did not match ; exit 1;
46fi
47if [ "$s5" != "$s5a" ]; then
48 echo r5 did not match ; exit 1;
49fi
50
51# failure status just means it has completed already, so ignore it.
52mdadm --wait /dev/md/r1 || true
53mdadm --wait /dev/md/r5 || true
54
55mdadm -Dbs > /var/tmp/mdadm.conf
56
57mdadm -Ss
58
59# Now try to assemble using mdadm.conf
60mdadm -Asc /var/tmp/mdadm.conf
61check nosync # This failed once. The raid5 was resyncing.
4ccc2562 62udevadm settle
00eb5716
N
63mdadm -Dbs | sort > /tmp/mdadm.conf
64sort /var/tmp/mdadm.conf | diff /tmp/mdadm.conf -
78e3d2a3
N
65mdadm -Ss
66
67# and now assemble fully incrementally.
68for i in $dev8 $dev9 $dev10 $dev11 $dev12
69do
70 #./mdadm -I $i -vv 2>&1 | wc -l > /tmp/cnt
71 ./mdadm -I $i 2> /tmp/thing
72 wc -l < /tmp/thing > /tmp/cnt
73 # should find container and 2 devices, so 3 lines.
74 [ `cat /tmp/cnt` -eq 3 ]
75done
76check nosync
4ccc2562 77udevadm settle
00eb5716
N
78mdadm -Dbs | sort > /tmp/mdadm.conf
79sort /var/tmp/mdadm.conf | diff /tmp/mdadm.conf -
78e3d2a3
N
80mdadm -Ss
81rm /tmp/mdadm.conf /var/tmp/mdadm.conf