#!/bin/bash
-# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
-# ex: ts=8 sw=4 sts=4 et filetype=sh
+set -e
TEST_DESCRIPTION="cryptsetup systemd setup"
+TEST_NO_NSPAWN=1
. $TEST_BASE_DIR/test-functions
}
-test_run() {
- if run_qemu; then
- check_result_qemu || return 1
- else
- dwarn "can't run QEMU, skipping"
- fi
- return 0
-}
-
test_setup() {
create_empty_image
echo -n test >$TESTDIR/keyfile
- cryptsetup -q luksFormat ${LOOPDEV}p2 $TESTDIR/keyfile
+ cryptsetup -q luksFormat --pbkdf pbkdf2 --pbkdf-force-iterations 1000 ${LOOPDEV}p2 $TESTDIR/keyfile
cryptsetup luksOpen ${LOOPDEV}p2 varcrypt <$TESTDIR/keyfile
- mkfs.ext3 -L var /dev/mapper/varcrypt
+ mkfs.ext4 -L var /dev/mapper/varcrypt
mkdir -p $TESTDIR/root
mount ${LOOPDEV}p1 $TESTDIR/root
mkdir -p $TESTDIR/root/var
setup_basic_environment
+ # mask some services that we do not want to run in these tests
+ ln -fs /dev/null $initdir/etc/systemd/system/systemd-hwdb-update.service
+ ln -fs /dev/null $initdir/etc/systemd/system/systemd-journal-catalog-update.service
+ ln -fs /dev/null $initdir/etc/systemd/system/systemd-networkd.service
+ ln -fs /dev/null $initdir/etc/systemd/system/systemd-networkd.socket
+ ln -fs /dev/null $initdir/etc/systemd/system/systemd-resolved.service
+ ln -fs /dev/null $initdir/etc/systemd/system/systemd-machined.service
+
# setup the testsuite service
cat >$initdir/etc/systemd/system/testsuite.service <<EOF
[Unit]
After=multi-user.target
[Service]
-ExecStart=/bin/sh -x -c 'systemctl --failed --no-legend --no-pager > /failed ; echo OK > /testok'
+ExecStart=/bin/sh -x -c 'systemctl --state=failed --no-legend --no-pager > /failed ; echo OK > /testok'
Type=oneshot
EOF
cat $initdir/etc/crypttab | ddebug
cat >>$initdir/etc/fstab <<EOF
-/dev/mapper/varcrypt /var ext3 defaults 0 1
+/dev/mapper/varcrypt /var ext4 defaults 0 1
EOF
- ) || return 1
- setup_nspawn_root
+ )
ddebug "umount $TESTDIR/root/var"
umount $TESTDIR/root/var
}
test_cleanup() {
- umount $TESTDIR/root/var 2>/dev/null
+ [ -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
+ umount $TESTDIR/root 2>/dev/null || true
[[ $LOOPDEV ]] && losetup -d $LOOPDEV
return 0
}