]>
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() { |
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 |
71dc3ed1 LP |
33 | mkdir -p $TESTDIR/root/var |
34 | mount /dev/mapper/varcrypt $TESTDIR/root/var | |
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] | |
55 | Description=Testsuite service | |
56 | After=multi-user.target | |
57 | ||
58 | [Service] | |
ed119049 | 59 | ExecStart=/bin/sh -x -c 'systemctl --state=failed --no-legend --no-pager > /failed ; echo OK > /testok' |
71dc3ed1 LP |
60 | Type=oneshot |
61 | EOF | |
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 | 69 | EOF |
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 | 75 | EOF |
cc469c3d | 76 | ) |
ec4cab49 | 77 | } |
71dc3ed1 | 78 | |
ec4cab49 | 79 | cleanup_root_var() { |
71dc3ed1 | 80 | ddebug "umount $TESTDIR/root/var" |
ec4cab49 DS |
81 | mountpoint $TESTDIR/root/var && umount $TESTDIR/root/var |
82 | [[ -b /dev/mapper/varcrypt ]] && cryptsetup luksClose /dev/mapper/varcrypt | |
71dc3ed1 LP |
83 | } |
84 | ||
85 | test_cleanup() { | |
f85bc044 DS |
86 | # ignore errors, so cleanup can continue |
87 | cleanup_root_var || true | |
ec4cab49 DS |
88 | _test_cleanup |
89 | } | |
90 | ||
91 | test_setup_cleanup() { | |
92 | cleanup_root_var | |
93 | _test_setup_cleanup | |
71dc3ed1 LP |
94 | } |
95 | ||
71dc3ed1 | 96 | do_test "$@" |