]> git.ipfire.org Git - thirdparty/mdadm.git/blob - test
Add test suite and release
[thirdparty/mdadm.git] / test
1 #!/bin/sh
2 #
3 # run test suite for mdadm
4 user=`id -un`
5 if [ " $user" != " root" ]
6 then echo >&2 "test: testing can only be done as 'root'."
7 exit 1;
8 fi
9
10 prefix='[0-9][0-9]'
11 if [ -n "$1" ]
12 then prefix=$1
13 fi
14
15 dir=`pwd`
16 mdadm=$dir/mdadm
17 export mdadm
18 if [ \! -x $mdadm ]
19 then
20 echo >&2 "test: $mdadm isn't usable."
21 fi
22
23 export check="sh $dir/tests/check"
24
25 # assume md0, md1, md2 exist in /dev
26 export md0=/dev/md0 md1=/dev/md1 md2=/dev/md2
27
28 # We test mdadm on loop-back block devices.
29 # dir for storing files should be settable by command line maybe
30 targetdir=/tmp
31 export targetdir
32 size=20000
33 mdsize0=19904
34 mdsize1=19992
35 export size mdsize0 mdsize1
36
37 cleanup() {
38 $mdadm -Ss
39 for d in 0 1 2 3 4 5 6 7
40 do losetup -d /dev/loop$d ; # rm -f $targetdir/mdtest$d
41 done
42 }
43
44 trap cleanup 0 1 2 3 15
45
46 devlist=
47 for d in 0 1 2 3 4 5 6 7
48 do
49 [ -f $targetdir/mdtest$d ] || dd if=/dev/zero of=$targetdir/mdtest$d count=$size bs=1K > /dev/null 2>&1
50 losetup /dev/loop$d $targetdir/mdtest$d
51 export dev$d=/dev/loop$d
52 eval devlist=\"\$devlist \$dev$d\"
53 done
54 export devlist
55
56
57 for script in tests/$prefix*[^~]
58 do
59 if sh -x $script > $targetdir/log 2>&1
60 then echo "$script succeeded"
61 else cat $targetdir/log
62 echo "$script failed"
63 exit 1
64 fi
65 done
66 exit 0