X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=regressions%2Ftest-mdadm.sh;h=7314ca5688dd28e7c8b42d912a116b8781242168;hb=7c89d9ef6b37314fb55aabd0c389a9d652acdb0f;hp=3ad4f22d3bfa9b6b1fb808217b259eb19e241659;hpb=c11a92751e003b3d4bc3584b598afc9bd9d9e703;p=libguestfs.git diff --git a/regressions/test-mdadm.sh b/regressions/test-mdadm.sh index 3ad4f22..7314ca5 100755 --- a/regressions/test-mdadm.sh +++ b/regressions/test-mdadm.sh @@ -16,7 +16,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -# Test guestfish mdadm-create command. +# Test guestfish md-create and md-detail commands. set -e @@ -53,16 +53,16 @@ part-add /dev/sdd p 12288 16383 part-add /dev/sdd p 16384 20479 # RAID 1. -mdadm-create r1t1 "/dev/sda1 /dev/sdb1" -mdadm-create r1t2 "/dev/sdc1 /dev/sdd1" chunk:65536 +md-create r1t1 "/dev/sda1 /dev/sdb1" +md-create r1t2 "/dev/sdc1 /dev/sdd1" chunk:65536 # RAID 5. -mdadm-create r5t1 "/dev/sda2 /dev/sdb2 /dev/sdc2 /dev/sdd2" \ +md-create r5t1 "/dev/sda2 /dev/sdb2 /dev/sdc2 /dev/sdd2" \ missingbitmap:0x10 nrdevices:4 spare:1 level:5 -mdadm-create r5t2 "/dev/sda3 /dev/sdb3" missingbitmap:0x1 level:5 +md-create r5t2 "/dev/sda3 /dev/sdb3" missingbitmap:0x1 level:5 -mdadm-create r5t3 "/dev/sdc3 /dev/sdd3" \ +md-create r5t3 "/dev/sdc3 /dev/sdd3" \ missingbitmap:0x6 nrdevices:2 spare:2 level:5 # Make some filesystems and put some content on the @@ -92,4 +92,75 @@ write /r5t3/baz "testing" EOF -rm -f md-test1.img md-test2.img md-test3.img md-test4.img +eval `../fish/guestfish --listen` +../fish/guestfish --remote add-ro md-test1.img +../fish/guestfish --remote add-ro md-test2.img +../fish/guestfish --remote add-ro md-test3.img +../fish/guestfish --remote add-ro md-test4.img +../fish/guestfish --remote run + +for md in `../fish/guestfish --remote list-md-devices`; do + ../fish/guestfish --remote md-detail "${md}" > md-detail.out + + sed 's/:\s*/=/' md-detail.out > md-detail.out.sh + . md-detail.out.sh + rm -f md-detail.out.sh + + error=0 + case "$name" in + *:r1t1) + [ "$level" == "raid1" ] || error=1 + [ "$devices" == "2" ] || error=1 + ;; + + *:r1t2) + [ "$level" == "raid1" ] || error=1 + [ "$devices" == "2" ] || error=1 + ;; + + *:r5t1) + [ "$level" == "raid5" ] || error=1 + [ "$devices" == "4" ] || error=1 + ;; + + *:r5t2) + [ "$level" == "raid5" ] || error=1 + [ "$devices" == "3" ] || error=1 + ;; + + *:r5t3) + [ "$level" == "raid5" ] || error=1 + [ "$devices" == "2" ] || error=1 + ;; + + *) + error=1 + esac + + [[ "$uuid" =~ ([0-9a-f]{8}:){3}[0-9a-f]{8} ]] || error=1 + [ ! -z "$metadata" ] || error=1 + + if [ "$error" == "1" ]; then + echo "$0: Unexpected output from md-detail for device $md" + cat md-detail.out + ../fish/guestfish --remote exit + exit 1 + fi +done + +../fish/guestfish --remote exit + +eval `../fish/guestfish --listen` +../fish/guestfish --remote add-ro md-test1.img +../fish/guestfish --remote add-ro md-test2.img +../fish/guestfish --remote add-ro md-test3.img +../fish/guestfish --remote add-ro md-test4.img +../fish/guestfish --remote run + +for md in `../fish/guestfish --remote list-md-devices`; do + ../fish/guestfish --remote md-stop "${md}" +done + +../fish/guestfish --remote exit + +rm -f md-detail.out md-test1.img md-test2.img md-test3.img md-test4.img