]>
Commit | Line | Data |
---|---|---|
71dc3ed1 | 1 | #!/bin/bash |
818567fc | 2 | set -e |
71dc3ed1 | 3 | TEST_DESCRIPTION="cryptsetup systemd setup" |
054ee249 | 4 | TEST_NO_NSPAWN=1 |
71dc3ed1 | 5 | |
fff87a35 | 6 | . $TEST_BASE_DIR/test-functions |
71dc3ed1 | 7 | |
889a9042 | 8 | check_result_qemu() { |
71dc3ed1 LP |
9 | ret=1 |
10 | mkdir -p $TESTDIR/root | |
11 | mount ${LOOPDEV}p1 $TESTDIR/root | |
12 | [[ -e $TESTDIR/root/testok ]] && ret=0 | |
889a9042 | 13 | [[ -f $TESTDIR/root/failed ]] && cp -a $TESTDIR/root/failed $TESTDIR |
71dc3ed1 LP |
14 | cryptsetup luksOpen ${LOOPDEV}p2 varcrypt <$TESTDIR/keyfile |
15 | mount /dev/mapper/varcrypt $TESTDIR/root/var | |
278d5115 | 16 | cp -a $TESTDIR/root/var/log/journal $TESTDIR |
71dc3ed1 LP |
17 | umount $TESTDIR/root/var |
18 | umount $TESTDIR/root | |
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 | 27 | test_setup() { |
889a9042 | 28 | create_empty_image |
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 |
71dc3ed1 LP |
33 | mkdir -p $TESTDIR/root |
34 | mount ${LOOPDEV}p1 $TESTDIR/root | |
71dc3ed1 LP |
35 | mkdir -p $TESTDIR/root/var |
36 | mount /dev/mapper/varcrypt $TESTDIR/root/var | |
37 | ||
38 | # Create what will eventually be our root filesystem onto an overlay | |
39 | ( | |
40 | LOG_LEVEL=5 | |
71dc3ed1 LP |
41 | eval $(udevadm info --export --query=env --name=/dev/mapper/varcrypt) |
42 | eval $(udevadm info --export --query=env --name=${LOOPDEV}p2) | |
43 | ||
889a9042 | 44 | setup_basic_environment |
71dc3ed1 | 45 | |
056ae881 YW |
46 | # mask some services that we do not want to run in these tests |
47 | ln -fs /dev/null $initdir/etc/systemd/system/systemd-hwdb-update.service | |
48 | ln -fs /dev/null $initdir/etc/systemd/system/systemd-journal-catalog-update.service | |
49 | ln -fs /dev/null $initdir/etc/systemd/system/systemd-networkd.service | |
50 | ln -fs /dev/null $initdir/etc/systemd/system/systemd-networkd.socket | |
51 | ln -fs /dev/null $initdir/etc/systemd/system/systemd-resolved.service | |
52 | ln -fs /dev/null $initdir/etc/systemd/system/systemd-machined.service | |
53 | ||
71dc3ed1 LP |
54 | # setup the testsuite service |
55 | cat >$initdir/etc/systemd/system/testsuite.service <<EOF | |
56 | [Unit] | |
57 | Description=Testsuite service | |
58 | After=multi-user.target | |
59 | ||
60 | [Service] | |
ed119049 | 61 | ExecStart=/bin/sh -x -c 'systemctl --state=failed --no-legend --no-pager > /failed ; echo OK > /testok' |
71dc3ed1 LP |
62 | Type=oneshot |
63 | EOF | |
c90feab4 | 64 | |
889a9042 | 65 | setup_testsuite |
71dc3ed1 | 66 | |
889a9042 | 67 | install_dmevent |
1a6dc653 | 68 | generate_module_dependencies |
889a9042 RC |
69 | cat >$initdir/etc/crypttab <<EOF |
70 | $DM_NAME UUID=$ID_FS_UUID /etc/varkey | |
71dc3ed1 | 71 | EOF |
889a9042 RC |
72 | echo -n test > $initdir/etc/varkey |
73 | cat $initdir/etc/crypttab | ddebug | |
71dc3ed1 | 74 | |
889a9042 | 75 | cat >>$initdir/etc/fstab <<EOF |
4b742c8a | 76 | /dev/mapper/varcrypt /var ext4 defaults 0 1 |
889a9042 | 77 | EOF |
cd949ee7 | 78 | ) || return 1 |
71dc3ed1 LP |
79 | |
80 | ddebug "umount $TESTDIR/root/var" | |
81 | umount $TESTDIR/root/var | |
82 | cryptsetup luksClose /dev/mapper/varcrypt | |
83 | ddebug "umount $TESTDIR/root" | |
84 | umount $TESTDIR/root | |
85 | } | |
86 | ||
87 | test_cleanup() { | |
818567fc | 88 | [ -d $TESTDIR/root/var ] && mountpoint $TESTDIR/root/var && umount $TESTDIR/root/var |
71dc3ed1 | 89 | [[ -b /dev/mapper/varcrypt ]] && cryptsetup luksClose /dev/mapper/varcrypt |
818567fc | 90 | umount $TESTDIR/root 2>/dev/null || true |
71dc3ed1 LP |
91 | [[ $LOOPDEV ]] && losetup -d $LOOPDEV |
92 | return 0 | |
93 | } | |
94 | ||
71dc3ed1 | 95 | do_test "$@" |