]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
TEST-12-RAID-DEG: harden test
authorHarald Hoyer <harald@redhat.com>
Fri, 28 Feb 2020 13:40:14 +0000 (14:40 +0100)
committerHarald Hoyer <harald@redhat.com>
Fri, 28 Feb 2020 13:41:15 +0000 (14:41 +0100)
use whole sda as marker disk and clear it completly between test runs

test/TEST-12-RAID-DEG/create-root.sh
test/TEST-12-RAID-DEG/hard-off.sh
test/TEST-12-RAID-DEG/test-init.sh
test/TEST-12-RAID-DEG/test.sh

index 31be41d1429b6876bfd070ec4cf743eccd9be255..c210b58210c54057ae56053ea95dfa5f93b2550b 100755 (executable)
@@ -10,14 +10,6 @@ rm -f -- /etc/lvm/lvm.conf
 udevadm control --reload
 udevadm settle
 sleep 1
-# save a partition at the beginning for future flagging purposes
-sfdisk /dev/sda <<EOF
-,5M
-,10M
-,10M
-,10M
-EOF
-udevadm settle
 mdadm --create /dev/md0 --run --auto=yes --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd
 # wait for the array to finish initailizing, otherwise this sometimes fails
 # randomly.
@@ -45,4 +37,4 @@ mdadm -W /dev/md0 || :
 mdadm --detail --export /dev/md0 |grep -F MD_UUID > /tmp/mduuid
 . /tmp/mduuid
 eval $(udevadm info --query=env --name=/dev/md0|while read line || [ -n "$line" ]; do [ "$line" != "${line#*ID_FS_UUID*}" ] && echo $line; done;)
-{ echo "dracut-root-block-created"; echo MD_UUID=$MD_UUID;  echo "ID_FS_UUID=$ID_FS_UUID";} | dd oflag=direct,dsync of=/dev/sda1
+{ echo "dracut-root-block-created"; echo MD_UUID=$MD_UUID;  echo "ID_FS_UUID=$ID_FS_UUID";} | dd oflag=direct,dsync of=/dev/sda
index 24668d9c4a66e8ba9a5eb52de7a50adbb05bb046..8179d57785471396fc421edda9c2db3332aee451 100755 (executable)
@@ -1,4 +1,4 @@
 #!/bin/sh
-sleep 10
+sleep 5
 getargbool 0 rd.shell || poweroff -f
 ! getargbool 0 rd.break && getargbool 0 failme && poweroff -f
index 1d9c9a8862d935ba6045aa77582b2b305c350253..1e41a0a44ade3f42aa4afb163b4fa94cb16622b7 100755 (executable)
@@ -99,7 +99,7 @@ strstr() { [ "${1##*"$2"*}" != "$1" ]; }
 CMDLINE=$(while read line || [ -n "$line" ]; do echo $line;done < /proc/cmdline)
 command -v plymouth >/dev/null && plymouth --quit
 exec >/dev/console 2>&1
-echo "dracut-root-block-success" | dd oflag=direct,dsync of=/dev/sda1
+echo "dracut-root-block-success" | dd oflag=direct,dsync of=/dev/sda
 export TERM=linux
 export PS1='initramfs-test:\w\$ '
 [ -f /etc/mtab ] || ln -sfn /proc/mounts /etc/mtab
index 2f3d72a8aa5c4aed57500df1a01375f47a114a46..f8dc08d903858cd8681a7b09728384a50709b0f6 100755 (executable)
@@ -15,25 +15,25 @@ client_run() {
     cp --sparse=always --reflink=auto $TESTDIR/disk3.img $TESTDIR/disk3.img.new
 
     $testdir/run-qemu \
-        -drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext2 \
+        -drive format=raw,index=0,media=disk,file=$TESTDIR/marker.img \
         -drive format=raw,index=2,media=disk,file=$TESTDIR/disk2.img.new \
         -drive format=raw,index=3,media=disk,file=$TESTDIR/disk3.img.new \
-        -append "panic=1 systemd.crash_reboot $* systemd.log_target=kmsg loglevel=7 root=LABEL=root rw rd.retry=20 rd.info console=ttyS0,115200n81 log_buf_len=2M selinux=0 rd.debug rd.shell=0 $DEBUGFAIL " \
+        -append "panic=1 systemd.crash_reboot $* systemd.log_target=kmsg root=LABEL=root rw rd.retry=10 rd.info console=ttyS0,115200n81 log_buf_len=2M selinux=0 rd.shell=0 $DEBUGFAIL " \
         -initrd $TESTDIR/initramfs.testing
-    if ! grep -F -m 1 -q dracut-root-block-success $TESTDIR/root.ext2; then
+    if ! grep -F -m 1 -q dracut-root-block-success $TESTDIR/marker.img; then
         echo "CLIENT TEST END: $@ [FAIL]"
         return 1;
     fi
+    rm -f -- $TESTDIR/marker.img
+    dd if=/dev/null of=$TESTDIR/marker.img bs=1M seek=40
 
-    sed -i -e 's#dracut-root-block-success#dracut-root-block-xxxxxxx#' $TESTDIR/root.ext2
     echo "CLIENT TEST END: $@ [OK]"
     return 0
 }
 
 test_run() {
-    eval $(grep -F --binary-files=text -m 1 MD_UUID $TESTDIR/root.ext2)
-    echo "MD_UUID=$MD_UUID"
     read LUKS_UUID < $TESTDIR/luksuuid
+    read MD_UUID < $TESTDIR/mduuid
 
     client_run failme && return 1
     client_run rd.auto || return 1
@@ -55,8 +55,8 @@ test_run() {
 
 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
+    rm -f -- $TESTDIR/marker.img
+    dd if=/dev/null of=$TESTDIR/marker.img bs=1M seek=40
     dd if=/dev/null of=$TESTDIR/disk1.img bs=1M seek=35
     dd if=/dev/null of=$TESTDIR/disk2.img bs=1M seek=35
     dd if=/dev/null of=$TESTDIR/disk3.img bs=1M seek=35
@@ -111,17 +111,19 @@ test_setup() {
     rm -rf -- $TESTDIR/overlay
     # Invoke KVM and/or QEMU to actually create the target filesystem.
     $testdir/run-qemu \
-        -drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext2 \
+        -drive format=raw,index=0,media=disk,file=$TESTDIR/marker.img \
         -drive format=raw,index=1,media=disk,file=$TESTDIR/disk1.img \
         -drive format=raw,index=2,media=disk,file=$TESTDIR/disk2.img \
         -drive format=raw,index=3,media=disk,file=$TESTDIR/disk3.img \
         -append "root=/dev/fakeroot rw rootfstype=ext2 quiet console=ttyS0,115200n81 selinux=0" \
         -initrd $TESTDIR/initramfs.makeroot  || return 1
 
-    grep -F -m 1 -q dracut-root-block-created $TESTDIR/root.ext2 || return 1
-    eval $(grep -F --binary-files=text -m 1 MD_UUID $TESTDIR/root.ext2)
-    eval $(grep -F -a -m 1 ID_FS_UUID $TESTDIR/root.ext2)
+    grep -F -m 1 -q dracut-root-block-created $TESTDIR/marker.img || return 1
+    eval $(grep -F --binary-files=text -m 1 MD_UUID $TESTDIR/marker.img)
+    eval $(grep -F -a -m 1 ID_FS_UUID $TESTDIR/marker.img)
     echo $ID_FS_UUID > $TESTDIR/luksuuid
+    eval $(grep -F --binary-files=text -m 1 MD_UUID $TESTDIR/marker.img)
+    echo "$MD_UUID" > $TESTDIR/mduuid
 
     (
         export initdir=$TESTDIR/overlay