]>
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 | 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 | 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 |
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 |
51fa8591 | 43 | mask_supporting_services |
056ae881 | 44 | |
71dc3ed1 LP |
45 | # setup the testsuite service |
46 | cat >$initdir/etc/systemd/system/testsuite.service <<EOF | |
47 | [Unit] | |
48 | Description=Testsuite service | |
49 | After=multi-user.target | |
50 | ||
51 | [Service] | |
ed119049 | 52 | ExecStart=/bin/sh -x -c 'systemctl --state=failed --no-legend --no-pager > /failed ; echo OK > /testok' |
71dc3ed1 LP |
53 | Type=oneshot |
54 | EOF | |
c90feab4 | 55 | |
889a9042 | 56 | setup_testsuite |
71dc3ed1 | 57 | |
889a9042 | 58 | install_dmevent |
1a6dc653 | 59 | generate_module_dependencies |
889a9042 RC |
60 | cat >$initdir/etc/crypttab <<EOF |
61 | $DM_NAME UUID=$ID_FS_UUID /etc/varkey | |
71dc3ed1 | 62 | EOF |
889a9042 RC |
63 | echo -n test > $initdir/etc/varkey |
64 | cat $initdir/etc/crypttab | ddebug | |
71dc3ed1 | 65 | |
889a9042 | 66 | cat >>$initdir/etc/fstab <<EOF |
4b742c8a | 67 | /dev/mapper/varcrypt /var ext4 defaults 0 1 |
889a9042 | 68 | EOF |
cc469c3d | 69 | ) |
ec4cab49 | 70 | } |
71dc3ed1 | 71 | |
ec4cab49 | 72 | cleanup_root_var() { |
0036ce06 DS |
73 | ddebug "umount $initdir/var" |
74 | mountpoint $initdir/var && umount $initdir/var | |
ec4cab49 | 75 | [[ -b /dev/mapper/varcrypt ]] && cryptsetup luksClose /dev/mapper/varcrypt |
71dc3ed1 LP |
76 | } |
77 | ||
78 | test_cleanup() { | |
f85bc044 | 79 | # ignore errors, so cleanup can continue |
65dd488f | 80 | cleanup_root_var || : |
ec4cab49 DS |
81 | _test_cleanup |
82 | } | |
83 | ||
84 | test_setup_cleanup() { | |
85 | cleanup_root_var | |
86 | _test_setup_cleanup | |
71dc3ed1 LP |
87 | } |
88 | ||
71dc3ed1 | 89 | do_test "$@" |