]> git.ipfire.org Git - thirdparty/systemd.git/blame - test/TEST-02-CRYPTSETUP/test.sh
test: drop redirection to tty in integration tests
[thirdparty/systemd.git] / test / TEST-02-CRYPTSETUP / test.sh
CommitLineData
71dc3ed1 1#!/bin/bash
818567fc 2set -e
71dc3ed1 3TEST_DESCRIPTION="cryptsetup systemd setup"
054ee249 4TEST_NO_NSPAWN=1
71dc3ed1 5
fff87a35 6. $TEST_BASE_DIR/test-functions
71dc3ed1 7
889a9042 8check_result_qemu() {
71dc3ed1 9 ret=1
0036ce06
DS
10 mkdir -p $initdir
11 mount ${LOOPDEV}p1 $initdir
12 [[ -e $initdir/testok ]] && ret=0
13 [[ -f $initdir/failed ]] && cp -a $initdir/failed $TESTDIR
71dc3ed1 14 cryptsetup luksOpen ${LOOPDEV}p2 varcrypt <$TESTDIR/keyfile
0036ce06
DS
15 mount /dev/mapper/varcrypt $initdir/var
16 cp -a $initdir/var/log/journal $TESTDIR
17 umount $initdir/var
18 umount $initdir
71dc3ed1 19 cryptsetup luksClose /dev/mapper/varcrypt
889a9042 20 [[ -f $TESTDIR/failed ]] && cat $TESTDIR/failed
71dc3ed1
LP
21 ls -l $TESTDIR/journal/*/*.journal
22 test -s $TESTDIR/failed && ret=$(($ret+1))
23 return $ret
24}
25
26
71dc3ed1 27test_setup() {
ec4cab49 28 create_empty_image_rootdir
71dc3ed1 29 echo -n test >$TESTDIR/keyfile
5b69d297 30 cryptsetup -q luksFormat --pbkdf pbkdf2 --pbkdf-force-iterations 1000 ${LOOPDEV}p2 $TESTDIR/keyfile
71dc3ed1 31 cryptsetup luksOpen ${LOOPDEV}p2 varcrypt <$TESTDIR/keyfile
4b742c8a 32 mkfs.ext4 -L var /dev/mapper/varcrypt
0036ce06
DS
33 mkdir -p $initdir/var
34 mount /dev/mapper/varcrypt $initdir/var
71dc3ed1
LP
35
36 # Create what will eventually be our root filesystem onto an overlay
37 (
38 LOG_LEVEL=5
71dc3ed1
LP
39 eval $(udevadm info --export --query=env --name=/dev/mapper/varcrypt)
40 eval $(udevadm info --export --query=env --name=${LOOPDEV}p2)
41
889a9042 42 setup_basic_environment
71dc3ed1 43
056ae881
YW
44 # mask some services that we do not want to run in these tests
45 ln -fs /dev/null $initdir/etc/systemd/system/systemd-hwdb-update.service
46 ln -fs /dev/null $initdir/etc/systemd/system/systemd-journal-catalog-update.service
47 ln -fs /dev/null $initdir/etc/systemd/system/systemd-networkd.service
48 ln -fs /dev/null $initdir/etc/systemd/system/systemd-networkd.socket
49 ln -fs /dev/null $initdir/etc/systemd/system/systemd-resolved.service
50 ln -fs /dev/null $initdir/etc/systemd/system/systemd-machined.service
51
71dc3ed1
LP
52 # setup the testsuite service
53 cat >$initdir/etc/systemd/system/testsuite.service <<EOF
54[Unit]
55Description=Testsuite service
56After=multi-user.target
57
58[Service]
ed119049 59ExecStart=/bin/sh -x -c 'systemctl --state=failed --no-legend --no-pager > /failed ; echo OK > /testok'
71dc3ed1
LP
60Type=oneshot
61EOF
c90feab4 62
889a9042 63 setup_testsuite
71dc3ed1 64
889a9042 65 install_dmevent
1a6dc653 66 generate_module_dependencies
889a9042
RC
67 cat >$initdir/etc/crypttab <<EOF
68$DM_NAME UUID=$ID_FS_UUID /etc/varkey
71dc3ed1 69EOF
889a9042
RC
70 echo -n test > $initdir/etc/varkey
71 cat $initdir/etc/crypttab | ddebug
71dc3ed1 72
889a9042 73 cat >>$initdir/etc/fstab <<EOF
4b742c8a 74/dev/mapper/varcrypt /var ext4 defaults 0 1
889a9042 75EOF
cc469c3d 76 )
ec4cab49 77}
71dc3ed1 78
ec4cab49 79cleanup_root_var() {
0036ce06
DS
80 ddebug "umount $initdir/var"
81 mountpoint $initdir/var && umount $initdir/var
ec4cab49 82 [[ -b /dev/mapper/varcrypt ]] && cryptsetup luksClose /dev/mapper/varcrypt
71dc3ed1
LP
83}
84
85test_cleanup() {
f85bc044 86 # ignore errors, so cleanup can continue
65dd488f 87 cleanup_root_var || :
ec4cab49
DS
88 _test_cleanup
89}
90
91test_setup_cleanup() {
92 cleanup_root_var
93 _test_setup_cleanup
71dc3ed1
LP
94}
95
71dc3ed1 96do_test "$@"