From 0ddc098eb0dad1bf9561ffe120d3f7fa2b16880a Mon Sep 17 00:00:00 2001 From: Harald Hoyer Date: Wed, 15 Feb 2012 11:37:06 +0100 Subject: [PATCH] TEST-12-RAID-DEG: improve test case --- test/TEST-12-RAID-DEG/create-root.sh | 49 ++++++++++++++++-------------------- test/TEST-12-RAID-DEG/hard-off.sh | 2 +- test/TEST-12-RAID-DEG/test-init | 17 +++++++++++-- test/TEST-12-RAID-DEG/test.sh | 31 ++++++++++++----------- 4 files changed, 55 insertions(+), 44 deletions(-) diff --git a/test/TEST-12-RAID-DEG/create-root.sh b/test/TEST-12-RAID-DEG/create-root.sh index 7be4a32..1eb1988 100755 --- a/test/TEST-12-RAID-DEG/create-root.sh +++ b/test/TEST-12-RAID-DEG/create-root.sh @@ -1,5 +1,8 @@ #!/bin/sh # don't let udev and this script step on eachother's toes + +trap 'poweroff -f' EXIT + for x in 64-lvm.rules 70-mdadm.rules 99-mount-rules; do > "/etc/udev/rules.d/$x" done @@ -12,36 +15,28 @@ sfdisk -C 1280 -H 2 -S 32 -L /dev/sda <keyfile cryptsetup -q luksFormat /dev/md0 /keyfile echo "The passphrase is test" -cryptsetup luksOpen /dev/md0 dracut_crypt_test /tmp/mduuid ; -. /tmp/mduuid; -} && \ -{ -echo "dracut-root-block-created" -echo MD_UUID=$MD_UUID -}> /dev/sda1 -dd if=/dev/zero of=/dev/sda2 -poweroff -f +set -e +cryptsetup luksOpen /dev/md0 dracut_crypt_test /tmp/mduuid +. /tmp/mduuid +{ echo "dracut-root-block-created"; echo MD_UUID=$MD_UUID; } > /dev/sda1 diff --git a/test/TEST-12-RAID-DEG/hard-off.sh b/test/TEST-12-RAID-DEG/hard-off.sh index 12c3d5a..07a8f1f 100755 --- a/test/TEST-12-RAID-DEG/hard-off.sh +++ b/test/TEST-12-RAID-DEG/hard-off.sh @@ -1,3 +1,3 @@ #!/bin/sh getarg rd.shell || poweroff -f -getarg failme && poweroff -f +! getarg rd.break && getarg failme && poweroff -f diff --git a/test/TEST-12-RAID-DEG/test-init b/test/TEST-12-RAID-DEG/test-init index 8f7cdf3..62afcee 100755 --- a/test/TEST-12-RAID-DEG/test-init +++ b/test/TEST-12-RAID-DEG/test-init @@ -1,11 +1,24 @@ #!/bin/sh export PATH=/sbin:/bin:/usr/sbin:/usr/bin +strstr() { [ "${1#*$2*}" != "$1" ]; } +CMDLINE=$(while read line; do echo $line;done < /proc/cmdline) +command -v plymouth >/dev/null && plymouth --quit exec >/dev/console 2>&1 echo "dracut-root-block-success" >/dev/sda1 export TERM=linux export PS1='initramfs-test:\w\$ ' -[ -f /etc/fstab ] || ln -s /proc/mounts /etc/fstab +[ -f /etc/mtab ] || ln -sfn /proc/mounts /etc/mtab +[ -f /etc/fstab ] || ln -sfn /proc/mounts /etc/fstab stty sane -echo "made it to the rootfs! Powering down." +echo "made it to the rootfs!" +strstr "$CMDLINE" "rd.shell" && sh -i +echo "Powering down." mount -n -o remount,ro / +#echo " rd.break=shutdown " >> /run/initramfs/etc/cmdline +if [ -d /run/initramfs/etc ]; then + echo " rd.debug=0 " >> /run/initramfs/etc/cmdline +fi +if [ -e /lib/systemd/systemd-shutdown ]; then + exec /lib/systemd/systemd-shutdown poweroff +fi poweroff -f diff --git a/test/TEST-12-RAID-DEG/test.sh b/test/TEST-12-RAID-DEG/test.sh index 62c2297..0cf45a4 100755 --- a/test/TEST-12-RAID-DEG/test.sh +++ b/test/TEST-12-RAID-DEG/test.sh @@ -5,11 +5,17 @@ KVERSION=${KVERSION-$(uname -r)} # Uncomment this to debug failures #DEBUGFAIL="rd.shell" +#DEBUGFAIL="rd.shell rd.break=pre-mount udev.log-priority=debug" client_run() { echo "CLIENT TEST START: $@" + cp --sparse=always $TESTDIR/disk2.img $TESTDIR/disk2.img.new + cp --sparse=always $TESTDIR/disk3.img $TESTDIR/disk3.img.new + $testdir/run-qemu \ -hda $TESTDIR/root.ext2 -m 256M -nographic \ + -hdc $TESTDIR/disk2.img.new \ + -hdd $TESTDIR/disk3.img.new \ -net none -kernel /boot/vmlinuz-$KVERSION \ -append "$@ root=LABEL=root rw quiet rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.debug $DEBUGFAIL " \ -initrd $TESTDIR/initramfs.testing @@ -29,24 +35,15 @@ test_run() { client_run || return 1 -# client_run rd.md.conf=0 || return 1 + client_run rd.md.uuid=$MD_UUID rd.md.conf=0 || return 1 - client_run rd.lvm=0 failme && return 1 + client_run rd.md.uuid=failme rd.md.conf=0 failme && return 1 + client_run rd.lvm=0 failme && return 1 client_run rd.lvm.vg=failme failme && return 1 - client_run rd.lvm.vg=dracut || return 1 - -# client_run rd.md.uuid=$MD_UUID rd.md.conf=0 || return 1 - - client_run rd.lvm.vg=dummy1 rd.lvm.vg=dracut rd.lvm.vg=dummy2 rd.lvm.conf=0 failme && return 1 - -# client_run rd.md.uuid=failme rd.md.conf=0 failme && return 1 - - client_run rd.md=0 failme && return 1 - -# client_run rd.md.uuid=dummy1 rd.md.uuid=$MD_UUID rd.md.uuid=dummy2 rd.md.conf=0 failme && return 1 - + client_run rd.lvm.lv=dracut/failme failme && return 1 + client_run rd.lvm.lv=dracut/root || return 1 return 0 } @@ -54,6 +51,9 @@ test_setup() { # Create the blank file to use as a root filesystem rm -f $TESTDIR/root.ext2 dd if=/dev/null of=$TESTDIR/root.ext2 bs=1M seek=40 + dd if=/dev/null of=$TESTDIR/disk1.img bs=1M seek=20 + dd if=/dev/null of=$TESTDIR/disk2.img bs=1M seek=20 + dd if=/dev/null of=$TESTDIR/disk3.img bs=1M seek=20 kernel=$KVERSION # Create what will eventually be our root filesystem onto an overlay @@ -96,6 +96,9 @@ test_setup() { # Invoke KVM and/or QEMU to actually create the target filesystem. $testdir/run-qemu \ -hda $TESTDIR/root.ext2 \ + -hdb $TESTDIR/disk1.img \ + -hdc $TESTDIR/disk2.img \ + -hdd $TESTDIR/disk3.img \ -m 256M -nographic -net none \ -kernel "/boot/vmlinuz-$kernel" \ -append "root=/dev/dracut/root rw rootfstype=ext2 quiet console=ttyS0,115200n81 selinux=0" \ -- 2.7.4