2 # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
3 # ex: ts=8 sw=4 sts=4 et filetype=sh
5 TEST_DESCRIPTION
="/etc/machine-id testing"
8 .
$TEST_BASE_DIR/test-functions
12 mkdir
-p $TESTDIR/root
13 mount
${LOOPDEV}p1
$TESTDIR/root
15 # Create what will eventually be our root filesystem onto an overlay
18 eval $
(udevadm info
--export --query=env
--name=${LOOPDEV}p2
)
20 setup_basic_environment
21 printf "556f48e837bc4424a710fa2e2c9d3e3c\ne3d\n" >$initdir/etc
/machine-id
22 dracut_install mount
cmp
24 # setup the testsuite service
25 cat >$initdir/etc
/systemd
/system
/testsuite.service
<<EOF
27 Description=Testsuite service
30 ExecStart=/bin/sh -e -x -c '/test-machine-id-setup.sh; systemctl --state=failed --no-legend --no-pager > /failed ; echo OK > /testok'
34 cat >$initdir/test-machine-id-setup.sh
<<'EOF'
43 mount -t tmpfs tmpfs "$_root"
44 mkdir -p "$_root/etc" "$_root/run"
55 r="$(pwd)/overwrite-broken-machine-id"
57 systemd-machine-id-setup --print --root "$r"
58 echo abc >>"$r/etc/machine-id"
59 id=$(systemd-machine-id-setup --print --root "$r")
61 check expected "$r/etc/machine-id"
63 r="$(pwd)/transient-machine-id"
65 systemd-machine-id-setup --print --root "$r"
66 echo abc >>"$r/etc/machine-id"
67 mount -o remount,ro "$r"
68 mount -t tmpfs tmpfs "$r/run"
69 transient_id=$(systemd-machine-id-setup --print --root "$r")
70 mount -o remount,rw "$r"
71 commited_id=$(systemd-machine-id-setup --print --commit --root "$r")
72 [[ "$transient_id" = "$commited_id" ]]
73 check "$r/etc/machine-id" "$r/run/machine-id"
75 chmod +x
$initdir/test-machine-id-setup.sh
80 # mask some services that we do not want to run in these tests
81 ln -s /dev
/null
$initdir/etc
/systemd
/system
/systemd-hwdb-update.service
82 ln -s /dev
/null
$initdir/etc
/systemd
/system
/systemd-journal-catalog-update.service
83 ln -s /dev
/null
$initdir/etc
/systemd
/system
/systemd-networkd.service
84 ln -s /dev
/null
$initdir/etc
/systemd
/system
/systemd-networkd.socket
85 ln -s /dev
/null
$initdir/etc
/systemd
/system
/systemd-resolved.service
87 ddebug
"umount $TESTDIR/root"