From d5088b1703983f301c00f9f2a00af35a7ee5ddac Mon Sep 17 00:00:00 2001 From: Harald Hoyer Date: Fri, 28 Feb 2020 14:40:14 +0100 Subject: [PATCH] TEST-12-RAID-DEG: harden test use whole sda as marker disk and clear it completly between test runs --- test/TEST-12-RAID-DEG/create-root.sh | 10 +--------- test/TEST-12-RAID-DEG/hard-off.sh | 2 +- test/TEST-12-RAID-DEG/test-init.sh | 2 +- test/TEST-12-RAID-DEG/test.sh | 26 ++++++++++++++------------ 4 files changed, 17 insertions(+), 23 deletions(-) diff --git a/test/TEST-12-RAID-DEG/create-root.sh b/test/TEST-12-RAID-DEG/create-root.sh index 31be41d14..c210b5821 100755 --- a/test/TEST-12-RAID-DEG/create-root.sh +++ b/test/TEST-12-RAID-DEG/create-root.sh @@ -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 < /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 diff --git a/test/TEST-12-RAID-DEG/hard-off.sh b/test/TEST-12-RAID-DEG/hard-off.sh index 24668d9c4..8179d5778 100755 --- a/test/TEST-12-RAID-DEG/hard-off.sh +++ b/test/TEST-12-RAID-DEG/hard-off.sh @@ -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 diff --git a/test/TEST-12-RAID-DEG/test-init.sh b/test/TEST-12-RAID-DEG/test-init.sh index 1d9c9a886..1e41a0a44 100755 --- a/test/TEST-12-RAID-DEG/test-init.sh +++ b/test/TEST-12-RAID-DEG/test-init.sh @@ -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 diff --git a/test/TEST-12-RAID-DEG/test.sh b/test/TEST-12-RAID-DEG/test.sh index 2f3d72a8a..f8dc08d90 100755 --- a/test/TEST-12-RAID-DEG/test.sh +++ b/test/TEST-12-RAID-DEG/test.sh @@ -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 -- 2.47.3