File 0011-TEST-02-CRYPTSETUP-remove-qemu-from-test-runs.patch of Package systemd-v234-testsuite

From c991e374732df5e44289367b05fed3d35123fa3f Mon Sep 17 00:00:00 2001
From: Thomas Blume <thomas.blume@suse.com>
Date: Wed, 6 Mar 2019 10:04:00 +0100
Subject: [PATCH 02/10] TEST-02-CRYPTSETUP: remove qemu from testrun

---
 test/TEST-02-CRYPTSETUP/test.sh | 94 ++++++++++++++++++++++-------------------
 1 file changed, 50 insertions(+), 44 deletions(-)

diff --git a/test/TEST-02-CRYPTSETUP/test.sh b/test/TEST-02-CRYPTSETUP/test.sh
index 1280148b58..f189c16a97 100755
--- a/test/TEST-02-CRYPTSETUP/test.sh
+++ b/test/TEST-02-CRYPTSETUP/test.sh
@@ -5,84 +5,90 @@ set -e
 TEST_DESCRIPTION="cryptsetup systemd setup"
 TEST_NO_NSPAWN=1
 
+export TEST_BASE_DIR="/var/opt/systemd-tests/test/"
 . $TEST_BASE_DIR/test-functions
 
-check_result_qemu() {
+test_run() {
     ret=1
-    mkdir -p $TESTDIR/root
-    mount ${LOOPDEV}p1 $TESTDIR/root
-    [[ -e $TESTDIR/root/testok ]] && ret=0
-    [[ -f $TESTDIR/root/failed ]] && cp -a $TESTDIR/root/failed $TESTDIR
-    cryptsetup luksOpen ${LOOPDEV}p2 varcrypt <$TESTDIR/keyfile
-    mount /dev/mapper/varcrypt $TESTDIR/root/var
-    cp -a $TESTDIR/root/var/log/journal $TESTDIR
-    umount $TESTDIR/root/var
-    umount $TESTDIR/root
-    cryptsetup luksClose /dev/mapper/varcrypt
-    [[ -f $TESTDIR/failed ]] && cat $TESTDIR/failed
-    ls -l $TESTDIR/journal/*/*.journal
-    test -s $TESTDIR/failed && ret=$(($ret+1))
+    systemctl daemon-reload
+    systemctl start testsuite.service || return 1
+    systemctl status --full testsuite.service
+
+    if [ -z "$TEST_NO_NSPAWN" ]; then
+        if run_nspawn; then
+            check_result_nspawn || return 1
+        else
+            dwarn "can't run systemd-nspawn, skipping"
+        fi
+    fi
+    test -s /failed && ret=$(($ret+1))
+    [[ -e /testok ]] && ret=0
+
     return $ret
 }
 
-
 test_setup() {
-    create_empty_image
+    sfdisk --force "/dev/vdb" <<EOF
+,2000M
+,
+EOF
+
     echo -n test >$TESTDIR/keyfile
-    cryptsetup -q luksFormat ${LOOPDEV}p2 $TESTDIR/keyfile
-    cryptsetup luksOpen ${LOOPDEV}p2 varcrypt <$TESTDIR/keyfile
+    cryptsetup -q luksFormat /dev/vdb1 $TESTDIR/keyfile
+    cryptsetup luksOpen /dev/vdb1 varcrypt <$TESTDIR/keyfile
     mkfs.ext3 -L var /dev/mapper/varcrypt
-    mkdir -p $TESTDIR/root
-    mount ${LOOPDEV}p1 $TESTDIR/root
-    mkdir -p $TESTDIR/root/var
-    mount /dev/mapper/varcrypt $TESTDIR/root/var
+    sed -i 's/ \/var / \/mnt /' /etc/fstab
 
-    # Create what will eventually be our root filesystem onto an overlay
     (
         LOG_LEVEL=5
         eval $(udevadm info --export --query=env --name=/dev/mapper/varcrypt)
-        eval $(udevadm info --export --query=env --name=${LOOPDEV}p2)
-
-        setup_basic_environment
+        eval $(udevadm info --export --query=env --name=/dev/vdb1)
 
         # setup the testsuite service
-        cat >$initdir/etc/systemd/system/testsuite.service <<EOF
+        cat >/etc/systemd/system/testsuite.service <<EOF
 [Unit]
 Description=Testsuite service
 After=multi-user.target
 
 [Service]
-ExecStart=/bin/sh -x -c 'systemctl --state=failed --no-legend --no-pager > /failed ; echo OK > /testok'
+ExecStart=/bin/sh -x -c 'echo -e "\nfailed:" > /failed; systemctl --state=failed --no-pager >> /failed; echo -e "\ntestresult:\nOK" > /testok'
+ExecStartPost=/bin/sh -x -c '/bin/mount | /usr/bin/sed -n "/ \/var /p" >> /testok'
 Type=oneshot
 EOF
 
-        setup_testsuite
-
-        install_dmevent
-        generate_module_dependencies
-        cat >$initdir/etc/crypttab <<EOF
+        cat >/etc/crypttab <<EOF
 $DM_NAME UUID=$ID_FS_UUID /etc/varkey
 EOF
-        echo -n test > $initdir/etc/varkey
-        cat $initdir/etc/crypttab | ddebug
+        echo -n test > /etc/varkey
+        cat /etc/crypttab | ddebug
 
-        cat >>$initdir/etc/fstab <<EOF
+        cat >>/etc/fstab <<EOF
 /dev/mapper/varcrypt    /var    ext3    defaults 0 1
 EOF
     ) || return 1
 
-    ddebug "umount $TESTDIR/root/var"
-    umount $TESTDIR/root/var
+
+    mount /dev/mapper/varcrypt /mnt
+    cp -avr /var/* /mnt
+    umount /mnt
     cryptsetup luksClose /dev/mapper/varcrypt
-    ddebug "umount $TESTDIR/root"
-    umount $TESTDIR/root
 }
 
 test_cleanup() {
-    [ -d $TESTDIR/root/var ] && mountpoint $TESTDIR/root/var && umount $TESTDIR/root/var
-    [[ -b /dev/mapper/varcrypt ]] && cryptsetup luksClose /dev/mapper/varcrypt
-    umount $TESTDIR/root 2>/dev/null || true
-    [[ $LOOPDEV ]] && losetup -d $LOOPDEV
+    sed -i '/varcrypt/d' /etc/fstab
+    sed -i 's/ \/mnt / \/var /' /etc/fstab
+
+    for service in testsuite.service; do
+        rm /etc/systemd/system/$service
+    done
+    [[ -e /testok ]] && rm /testok
+    [[ -e /failed ]] && rm /failed
+
+    rm -r /mnt/tmp/systemd-test.*
+    rm /etc/systemd/system/testsuite.service
+    rm /etc/varkey
+    rm /etc/crypttab
+    dd if=/dev/zero of=/dev/vdb count=100
     return 0
 }
 
-- 
2.16.4

openSUSE Build Service is sponsored by