# 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
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
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