summaryrefslogtreecommitdiff
path: root/test/TEST-02-CRYPTSETUP/test.sh
diff options
context:
space:
mode:
Diffstat (limited to 'test/TEST-02-CRYPTSETUP/test.sh')
-rwxr-xr-xtest/TEST-02-CRYPTSETUP/test.sh264
1 files changed, 0 insertions, 264 deletions
diff --git a/test/TEST-02-CRYPTSETUP/test.sh b/test/TEST-02-CRYPTSETUP/test.sh
deleted file mode 100755
index 790dc3074c..0000000000
--- a/test/TEST-02-CRYPTSETUP/test.sh
+++ /dev/null
@@ -1,264 +0,0 @@
-#!/bin/bash
-# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
-# ex: ts=8 sw=4 sts=4 et filetype=sh
-TEST_DESCRIPTION="cryptsetup systemd setup"
-
-KVERSION=${KVERSION-$(uname -r)}
-KERNEL_VER=$(uname -r)
-
-# Uncomment this to debug failures
-#DEBUGFAIL="systemd.unit=multi-user.target"
-DEBUGTOOLS="df free ls stty cat ps ln ip route dmesg dhclient mkdir cp ping dhclient strace less grep id tty touch du sort"
-
-run_qemu() {
- # TODO: qemu wrapper script: http://www.spinics.net/lists/kvm/msg72389.html
- qemu-kvm \
- -hda $TESTDIR/rootdisk.img \
- -m 512M -nographic \
- -net none -kernel /boot/vmlinuz-$KERNEL_VER \
- -append "root=/dev/sda1 systemd.log_level=debug raid=noautodetect loglevel=2 init=/usr/lib/systemd/systemd ro console=ttyS0,115200n81 selinux=0 $DEBUGFAIL" || return 1
-
- ret=1
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
- [[ -e $TESTDIR/root/testok ]] && ret=0
- 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
- cat $TESTDIR/failed
- ls -l $TESTDIR/journal/*/*.journal
- test -s $TESTDIR/failed && ret=$(($ret+1))
- return $ret
-}
-
-
-test_run() {
- if check_qemu ; then
- run_qemu || return 1
- else
- dwarn "can't run qemu-kvm, skipping"
- fi
- return 0
-}
-
-test_setup() {
- rm -f $TESTDIR/rootdisk.img
- # Create the blank file to use as a root filesystem
- dd if=/dev/null of=$TESTDIR/rootdisk.img bs=1M seek=200
- LOOPDEV=$(losetup --show -P -f $TESTDIR/rootdisk.img)
- [ -b $LOOPDEV ] || return 1
- echo "LOOPDEV=$LOOPDEV" >> $STATEFILE
- sfdisk -C 6400 -H 2 -S 32 -L $LOOPDEV <<EOF
-,3200
-,
-EOF
-
- mkfs.ext3 -L systemd ${LOOPDEV}p1
- echo -n test >$TESTDIR/keyfile
- cryptsetup -q luksFormat ${LOOPDEV}p2 $TESTDIR/keyfile
- cryptsetup luksOpen ${LOOPDEV}p2 varcrypt <$TESTDIR/keyfile
- mkfs.ext3 -L var /dev/mapper/varcrypt
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
- mkdir -p $TESTDIR/root/run
- mkdir -p $TESTDIR/root/var
- mount /dev/mapper/varcrypt $TESTDIR/root/var
-
- # Create what will eventually be our root filesystem onto an overlay
- (
- LOG_LEVEL=5
- initdir=$TESTDIR/root
-
- # create the basic filesystem layout
- setup_basic_dirs
-
- # install compiled files
- (cd ../..; make DESTDIR=$initdir install)
-
- # remove unneeded documentation
- rm -fr $initdir/usr/share/{man,doc,gtk-doc}
-
- # install possible missing libraries
- for i in $initdir/{sbin,bin}/* $initdir/lib/systemd/*; do
- inst_libs $i
- done
-
- # make a journal directory
- mkdir -p $initdir/var/log/journal
-
- # install some basic config files
- inst /etc/sysconfig/init
- inst /etc/passwd
- inst /etc/shadow
- inst /etc/group
- inst /etc/shells
- inst /etc/nsswitch.conf
- inst /etc/pam.conf
- inst /etc/securetty
- inst /etc/os-release
- inst /etc/localtime
- # we want an empty environment
- > $initdir/etc/environment
- > $initdir/etc/machine-id
-
- # set the hostname
- echo systemd-testsuite > $initdir/etc/hostname
-
- eval $(udevadm info --export --query=env --name=/dev/mapper/varcrypt)
- eval $(udevadm info --export --query=env --name=${LOOPDEV}p2)
-
- cat >$initdir/etc/crypttab <<EOF
-$DM_NAME UUID=$ID_FS_UUID /etc/varkey
-EOF
- echo -n test > $initdir/etc/varkey
- cat $initdir/etc/crypttab | ddebug
-
- cat >$initdir/etc/fstab <<EOF
-LABEL=systemd / ext3 rw 0 1
-/dev/mapper/varcrypt /var ext3 defaults 0 1
-EOF
-
- # setup the testsuite target
- cat >$initdir/etc/systemd/system/testsuite.target <<EOF
-[Unit]
-Description=Testsuite target
-Requires=multi-user.target
-After=multi-user.target
-Conflicts=rescue.target
-AllowIsolate=yes
-EOF
-
- # setup the testsuite service
- cat >$initdir/etc/systemd/system/testsuite.service <<EOF
-[Unit]
-Description=Testsuite service
-After=multi-user.target
-
-[Service]
-ExecStart=/bin/bash -c 'set -x; systemctl --failed --no-legend --no-pager > /failed ; echo OK > /testok; while : ;do systemd-cat echo "testsuite service waiting for /var/log/journal" ; echo "testsuite service waiting for journal to move to /var/log/journal" > /dev/console ; for i in /var/log/journal/*;do [ -d "\$i" ] && echo "\$i" && break 2; done; sleep 1; done; sleep 1; exit 0;'
-ExecStopPost=/usr/bin/systemctl poweroff
-Type=oneshot
-EOF
- mkdir -p $initdir/etc/systemd/system/testsuite.target.wants
- ln -fs ../testsuite.service $initdir/etc/systemd/system/testsuite.target.wants/testsuite.service
-
- # make the testsuite the default target
- ln -fs testsuite.target $initdir/etc/systemd/system/default.target
- mkdir -p $initdir/etc/rc.d
- cat >$initdir/etc/rc.d/rc.local <<EOF
-#!/bin/bash
-exit 0
-EOF
- chmod 0755 $initdir/etc/rc.d/rc.local
- # install basic tools needed
- dracut_install sh bash setsid loadkeys setfont \
- login sushell sulogin gzip sleep echo mount umount cryptsetup
- dracut_install dmsetup modprobe
-
- instmods dm_crypt =crypto
-
- type -P dmeventd >/dev/null && dracut_install dmeventd
-
- inst_libdir_file "libdevmapper-event.so*"
-
- inst_rules 10-dm.rules 13-dm-disk.rules 95-dm-notify.rules
-
- # install libnss_files for login
- inst_libdir_file "libnss_files*"
-
- # install dbus and pam
- find \
- /etc/dbus-1 \
- /etc/pam.d \
- /etc/security \
- /lib64/security \
- /lib/security -xtype f \
- | while read file; do
- inst $file
- done
-
- # install dbus socket and service file
- inst /usr/lib/systemd/system/dbus.socket
- inst /usr/lib/systemd/system/dbus.service
-
- # install basic keyboard maps and fonts
- for i in \
- /usr/lib/kbd/consolefonts/latarcyrheb-sun16* \
- /usr/lib/kbd/keymaps/include/* \
- /usr/lib/kbd/keymaps/i386/include/* \
- /usr/lib/kbd/keymaps/i386/qwerty/us.*; do
- [[ -f $i ]] || continue
- inst $i
- done
-
- # some basic terminfo files
- for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
- [ -f ${_terminfodir}/l/linux ] && break
- done
- dracut_install -o ${_terminfodir}/l/linux
-
- # softlink mtab
- ln -fs /proc/self/mounts $initdir/etc/mtab
-
- # install any Exec's from the service files
- egrep -ho '^Exec[^ ]*=[^ ]+' $initdir/lib/systemd/system/*.service \
- | while read i; do
- i=${i##Exec*=}; i=${i##-}
- inst $i
- done
-
- # install plymouth, if found... else remove plymouth service files
- # if [ -x /usr/libexec/plymouth/plymouth-populate-initrd ]; then
- # PLYMOUTH_POPULATE_SOURCE_FUNCTIONS="$TEST_BASE_DIR/test-functions" \
- # /usr/libexec/plymouth/plymouth-populate-initrd -t $initdir
- # dracut_install plymouth plymouthd
- # else
- rm -f $initdir/{usr/lib,etc}/systemd/system/plymouth* $initdir/{usr/lib,etc}/systemd/system/*/plymouth*
- # fi
-
- # some helper tools for debugging
- [[ $DEBUGTOOLS ]] && dracut_install $DEBUGTOOLS
-
- # install ld.so.conf* and run ldconfig
- cp -a /etc/ld.so.conf* $initdir/etc
- ldconfig -r "$initdir"
- ddebug "Strip binaeries"
- find "$initdir" -perm +111 -type f | xargs strip --strip-unneeded | ddebug
-
- # copy depmod files
- inst /lib/modules/$KERNEL_VER/modules.order
- inst /lib/modules/$KERNEL_VER/modules.builtin
- # generate module dependencies
- if [[ -d $initdir/lib/modules/$KERNEL_VER ]] && \
- ! depmod -a -b "$initdir" $KERNEL_VER; then
- dfatal "\"depmod -a $KERNEL_VER\" failed."
- exit 1
- fi
- )
- rm -fr $TESTDIR/nspawn-root
- ddebug "cp -ar $TESTDIR/root $TESTDIR/nspawn-root"
- cp -ar $TESTDIR/root $TESTDIR/nspawn-root
- # we don't mount in the nspawn root
- rm -fr $TESTDIR/nspawn-root/etc/fstab
-
- ddebug "umount $TESTDIR/root/var"
- umount $TESTDIR/root/var
- cryptsetup luksClose /dev/mapper/varcrypt
- ddebug "umount $TESTDIR/root"
- umount $TESTDIR/root
-}
-
-test_cleanup() {
- umount $TESTDIR/root/var 2>/dev/null
- [[ -b /dev/mapper/varcrypt ]] && cryptsetup luksClose /dev/mapper/varcrypt
- umount $TESTDIR/root 2>/dev/null
- [[ $LOOPDEV ]] && losetup -d $LOOPDEV
- return 0
-}
-
-. $TEST_BASE_DIR/test-functions
-do_test "$@"