]>
Commit | Line | Data |
---|---|---|
71dc3ed1 LP |
1 | #!/bin/bash |
2 | # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- | |
3 | # ex: ts=8 sw=4 sts=4 et filetype=sh | |
818567fc | 4 | set -e |
71dc3ed1 | 5 | TEST_DESCRIPTION="cryptsetup systemd setup" |
054ee249 | 6 | TEST_NO_NSPAWN=1 |
71dc3ed1 | 7 | |
fff87a35 | 8 | . $TEST_BASE_DIR/test-functions |
71dc3ed1 | 9 | |
889a9042 | 10 | check_result_qemu() { |
71dc3ed1 LP |
11 | ret=1 |
12 | mkdir -p $TESTDIR/root | |
13 | mount ${LOOPDEV}p1 $TESTDIR/root | |
14 | [[ -e $TESTDIR/root/testok ]] && ret=0 | |
889a9042 | 15 | [[ -f $TESTDIR/root/failed ]] && cp -a $TESTDIR/root/failed $TESTDIR |
71dc3ed1 LP |
16 | cryptsetup luksOpen ${LOOPDEV}p2 varcrypt <$TESTDIR/keyfile |
17 | mount /dev/mapper/varcrypt $TESTDIR/root/var | |
278d5115 | 18 | cp -a $TESTDIR/root/var/log/journal $TESTDIR |
71dc3ed1 LP |
19 | umount $TESTDIR/root/var |
20 | umount $TESTDIR/root | |
21 | cryptsetup luksClose /dev/mapper/varcrypt | |
889a9042 | 22 | [[ -f $TESTDIR/failed ]] && cat $TESTDIR/failed |
71dc3ed1 LP |
23 | ls -l $TESTDIR/journal/*/*.journal |
24 | test -s $TESTDIR/failed && ret=$(($ret+1)) | |
25 | return $ret | |
26 | } | |
27 | ||
28 | ||
71dc3ed1 | 29 | test_setup() { |
889a9042 | 30 | create_empty_image |
71dc3ed1 LP |
31 | echo -n test >$TESTDIR/keyfile |
32 | cryptsetup -q luksFormat ${LOOPDEV}p2 $TESTDIR/keyfile | |
33 | cryptsetup luksOpen ${LOOPDEV}p2 varcrypt <$TESTDIR/keyfile | |
4b742c8a | 34 | mkfs.ext4 -L var /dev/mapper/varcrypt |
71dc3ed1 LP |
35 | mkdir -p $TESTDIR/root |
36 | mount ${LOOPDEV}p1 $TESTDIR/root | |
71dc3ed1 LP |
37 | mkdir -p $TESTDIR/root/var |
38 | mount /dev/mapper/varcrypt $TESTDIR/root/var | |
39 | ||
40 | # Create what will eventually be our root filesystem onto an overlay | |
41 | ( | |
42 | LOG_LEVEL=5 | |
71dc3ed1 LP |
43 | eval $(udevadm info --export --query=env --name=/dev/mapper/varcrypt) |
44 | eval $(udevadm info --export --query=env --name=${LOOPDEV}p2) | |
45 | ||
889a9042 | 46 | setup_basic_environment |
71dc3ed1 LP |
47 | |
48 | # setup the testsuite service | |
49 | cat >$initdir/etc/systemd/system/testsuite.service <<EOF | |
50 | [Unit] | |
51 | Description=Testsuite service | |
52 | After=multi-user.target | |
53 | ||
54 | [Service] | |
ed119049 | 55 | ExecStart=/bin/sh -x -c 'systemctl --state=failed --no-legend --no-pager > /failed ; echo OK > /testok' |
71dc3ed1 LP |
56 | Type=oneshot |
57 | EOF | |
c90feab4 | 58 | |
889a9042 | 59 | setup_testsuite |
71dc3ed1 | 60 | |
889a9042 | 61 | install_dmevent |
1a6dc653 | 62 | generate_module_dependencies |
889a9042 RC |
63 | cat >$initdir/etc/crypttab <<EOF |
64 | $DM_NAME UUID=$ID_FS_UUID /etc/varkey | |
71dc3ed1 | 65 | EOF |
889a9042 RC |
66 | echo -n test > $initdir/etc/varkey |
67 | cat $initdir/etc/crypttab | ddebug | |
71dc3ed1 | 68 | |
889a9042 | 69 | cat >>$initdir/etc/fstab <<EOF |
4b742c8a | 70 | /dev/mapper/varcrypt /var ext4 defaults 0 1 |
889a9042 | 71 | EOF |
cd949ee7 | 72 | ) || return 1 |
71dc3ed1 LP |
73 | |
74 | ddebug "umount $TESTDIR/root/var" | |
75 | umount $TESTDIR/root/var | |
76 | cryptsetup luksClose /dev/mapper/varcrypt | |
77 | ddebug "umount $TESTDIR/root" | |
78 | umount $TESTDIR/root | |
79 | } | |
80 | ||
81 | test_cleanup() { | |
818567fc | 82 | [ -d $TESTDIR/root/var ] && mountpoint $TESTDIR/root/var && umount $TESTDIR/root/var |
71dc3ed1 | 83 | [[ -b /dev/mapper/varcrypt ]] && cryptsetup luksClose /dev/mapper/varcrypt |
818567fc | 84 | umount $TESTDIR/root 2>/dev/null || true |
71dc3ed1 LP |
85 | [[ $LOOPDEV ]] && losetup -d $LOOPDEV |
86 | return 0 | |
87 | } | |
88 | ||
71dc3ed1 | 89 | do_test "$@" |