File 0001-TEST-02-CRYPTSETUP-adapt-for-openQA.patch of Package systemd-v245-testsuite

From ff7df4975eb826b1b57b164bad3c46b78c4f66c5 Mon Sep 17 00:00:00 2001
From: Elisei Roca <eroca@suse.de>
Date: Fri, 8 May 2020 19:31:09 +0200
Subject: [PATCH] TEST-02-CRYPTSETUP: adapt for openQA

---
 test/TEST-02-CRYPTSETUP/test.sh | 95 ++++++++++++++++-----------------
 1 file changed, 46 insertions(+), 49 deletions(-)

diff --git a/test/TEST-02-CRYPTSETUP/test.sh b/test/TEST-02-CRYPTSETUP/test.sh
index a859b345d0..79f8a1e4f4 100755
--- a/test/TEST-02-CRYPTSETUP/test.sh
+++ b/test/TEST-02-CRYPTSETUP/test.sh
@@ -3,87 +3,84 @@ 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() {
-    ret=1
-    mkdir -p $initdir
-    mount ${LOOPDEV}p1 $initdir
-    [[ -e $initdir/testok ]] && ret=0
-    [[ -f $initdir/failed ]] && cp -a $initdir/failed $TESTDIR
-    cryptsetup luksOpen ${LOOPDEV}p2 varcrypt <$TESTDIR/keyfile
-    mount /dev/mapper/varcrypt $initdir/var
-    cp -a $initdir/var/log/journal $TESTDIR
-    umount $initdir/var
-    umount $initdir
-    cryptsetup luksClose /dev/mapper/varcrypt
-    [[ -f $TESTDIR/failed ]] && cat $TESTDIR/failed
-    ls -l $TESTDIR/journal/*/*.journal
-    test -s $TESTDIR/failed && ret=$(($ret+1))
-    return $ret
-}
+test_setup() {
+    mkdir -p $TESTDIR/root
+    initdir=$TESTDIR/root
+    STRIP_BINARIES=no
 
+    sfdisk --force "/dev/vdb" <<EOF
+,2000M
+,
+EOF
 
-test_setup() {
-    create_empty_image_rootdir
     echo -n test >$TESTDIR/keyfile
-    cryptsetup -q luksFormat --pbkdf pbkdf2 --pbkdf-force-iterations 1000 ${LOOPDEV}p2 $TESTDIR/keyfile
-    cryptsetup luksOpen ${LOOPDEV}p2 varcrypt <$TESTDIR/keyfile
-    mkfs.ext4 -L var /dev/mapper/varcrypt
-    mkdir -p $initdir/var
-    mount /dev/mapper/varcrypt $initdir/var
+    cryptsetup -q luksFormat /dev/vdb1 $TESTDIR/keyfile
+    cryptsetup luksOpen /dev/vdb1 varcrypt <$TESTDIR/keyfile
+    mkfs.ext3 -L var /dev/mapper/varcrypt
+    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
-        mask_supporting_services
+        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 -e -x -c 'systemctl --state=failed --no-pager > /failed ; systemctl daemon-reload ; echo SUSEtest OK > /testok'
+ExecStartPost=/bin/sh -x -c "cat /proc/mounts | /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    ext4    defaults 0 1
 EOF
     )
+
+    mount /dev/mapper/varcrypt /mnt
+    cp -avr /var/* /mnt
+    umount /mnt
+    cryptsetup luksClose /dev/mapper/varcrypt
+
+    mask_supporting_services
 }
 
-cleanup_root_var() {
-    ddebug "umount $initdir/var"
-    mountpoint $initdir/var && umount $initdir/var
-    [[ -b /dev/mapper/varcrypt ]] && cryptsetup luksClose /dev/mapper/varcrypt
+test_run() {
+    systemctl daemon-reload
+    systemctl start testsuite.service || return 1
+    ret=1
+    test -s /failed && ret=$(($ret+1))
+    [[ -e /testok ]] && ret=0
+    return $ret
 }
 
 test_cleanup() {
-    # ignore errors, so cleanup can continue
-    cleanup_root_var || :
     _test_cleanup
-}
+    sed -i '/varcrypt/d' /etc/fstab
+    sed -i 's/ \/mnt / \/var /' /etc/fstab
+
+    rm /etc/systemd/system/testsuite.service
+    [[ -e /testok ]] && rm /testok
+    [[ -e /failed ]] && rm /failed
 
-test_setup_cleanup() {
-    cleanup_root_var
-    _test_setup_cleanup
+    rm -rf /mnt/tmp/systemd-test.*
+    rm -f /etc/varkey
+    rm -f /etc/crypttab
+    dd if=/dev/zero of=/dev/vdb count=100
+    return 0
 }
 
 do_test "$@"
-- 
2.26.2

openSUSE Build Service is sponsored by