]> git.ipfire.org Git - thirdparty/systemd.git/blame - test/TEST-02-CRYPTSETUP/test.sh
test: rework how images are created
[thirdparty/systemd.git] / test / TEST-02-CRYPTSETUP / test.sh
CommitLineData
ff12a795 1#!/usr/bin/env bash
818567fc 2set -e
71dc3ed1 3TEST_DESCRIPTION="cryptsetup systemd setup"
8c3534b5 4IMAGE_NAME="cryptsetup"
054ee249 5TEST_NO_NSPAWN=1
71dc3ed1 6
fff87a35 7. $TEST_BASE_DIR/test-functions
71dc3ed1 8
889a9042 9check_result_qemu() {
71dc3ed1 10 ret=1
0036ce06
DS
11 mkdir -p $initdir
12 mount ${LOOPDEV}p1 $initdir
13 [[ -e $initdir/testok ]] && ret=0
14 [[ -f $initdir/failed ]] && cp -a $initdir/failed $TESTDIR
71dc3ed1 15 cryptsetup luksOpen ${LOOPDEV}p2 varcrypt <$TESTDIR/keyfile
0036ce06
DS
16 mount /dev/mapper/varcrypt $initdir/var
17 cp -a $initdir/var/log/journal $TESTDIR
18 umount $initdir/var
19 umount $initdir
71dc3ed1 20 cryptsetup luksClose /dev/mapper/varcrypt
889a9042 21 [[ -f $TESTDIR/failed ]] && cat $TESTDIR/failed
71dc3ed1
LP
22 ls -l $TESTDIR/journal/*/*.journal
23 test -s $TESTDIR/failed && ret=$(($ret+1))
24 return $ret
25}
26
8c3534b5 27test_create_image() {
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
889a9042 45 install_dmevent
1a6dc653 46 generate_module_dependencies
889a9042
RC
47 cat >$initdir/etc/crypttab <<EOF
48$DM_NAME UUID=$ID_FS_UUID /etc/varkey
71dc3ed1 49EOF
5964e39a 50 echo -n test >$initdir/etc/varkey
889a9042 51 cat $initdir/etc/crypttab | ddebug
71dc3ed1 52
889a9042 53 cat >>$initdir/etc/fstab <<EOF
4b742c8a 54/dev/mapper/varcrypt /var ext4 defaults 0 1
889a9042 55EOF
cc469c3d 56 )
ec4cab49 57}
71dc3ed1 58
ec4cab49 59cleanup_root_var() {
0036ce06
DS
60 ddebug "umount $initdir/var"
61 mountpoint $initdir/var && umount $initdir/var
ec4cab49 62 [[ -b /dev/mapper/varcrypt ]] && cryptsetup luksClose /dev/mapper/varcrypt
71dc3ed1
LP
63}
64
65test_cleanup() {
f85bc044 66 # ignore errors, so cleanup can continue
65dd488f 67 cleanup_root_var || :
ec4cab49
DS
68 _test_cleanup
69}
70
71test_setup_cleanup() {
72 cleanup_root_var
73 _test_setup_cleanup
71dc3ed1
LP
74}
75
5964e39a 76do_test "$@" 02