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