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
28 After=multi-user.target
31 ExecStart=/bin/sh -e -x -c '/test-machine-id-setup.sh; systemctl --state=failed --no-legend --no-pager > /failed ; echo OK > /testok'
35 cat >$initdir/test-machine-id-setup.sh
<<'EOF'
44 mount -t tmpfs tmpfs "$_root"
45 mkdir -p "$_root/etc" "$_root/run"
56 r="$(pwd)/overwrite-broken-machine-id"
58 systemd-machine-id-setup --print --root "$r"
59 echo abc >>"$r/etc/machine-id"
60 id=$(systemd-machine-id-setup --print --root "$r")
62 check expected "$r/etc/machine-id"
64 r="$(pwd)/transient-machine-id"
66 systemd-machine-id-setup --print --root "$r"
67 echo abc >>"$r/etc/machine-id"
68 mount -o remount,ro "$r"
69 mount -t tmpfs tmpfs "$r/run"
70 transient_id=$(systemd-machine-id-setup --print --root "$r")
71 mount -o remount,rw "$r"
72 commited_id=$(systemd-machine-id-setup --print --commit --root "$r")
73 [[ "$transient_id" = "$commited_id" ]]
74 check "$r/etc/machine-id" "$r/run/machine-id"
76 chmod +x
$initdir/test-machine-id-setup.sh
81 # mask some services that we do not want to run in these tests
82 ln -s /dev
/null
$initdir/etc
/systemd
/system
/systemd-hwdb-update.service
83 ln -s /dev
/null
$initdir/etc
/systemd
/system
/systemd-journal-catalog-update.service
84 ln -s /dev
/null
$initdir/etc
/systemd
/system
/systemd-networkd.service
85 ln -s /dev
/null
$initdir/etc
/systemd
/system
/systemd-networkd.socket
86 ln -s /dev
/null
$initdir/etc
/systemd
/system
/systemd-resolved.service
88 ddebug
"umount $TESTDIR/root"