mirror of
https://github.com/systemd/systemd
synced 2024-09-06 16:56:43 +00:00
![Daan De Meyer](/assets/img/avatar_default.png)
Having these named differently than the test itself mostly creates unecessary confusion and makes writing logic against the tests harder so let's rename the testsuite-xx units and scripts to just use the test name itself.
78 lines
2 KiB
Bash
Executable file
78 lines
2 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
# shellcheck disable=SC2064
|
|
set -eux
|
|
set -o pipefail
|
|
|
|
# shellcheck source=test/units/test-control.sh
|
|
. "$(dirname "$0")"/test-control.sh
|
|
# shellcheck source=test/units/util.sh
|
|
. "$(dirname "$0")"/util.sh
|
|
|
|
root_mock() {
|
|
local root="${1:?}"
|
|
|
|
mkdir -p "$root"
|
|
# Put a tmpfs over the "root", so we're able to remount it as read-only
|
|
# when needed
|
|
mount -t tmpfs tmpfs "$root"
|
|
mkdir "$root/etc" "$root/run"
|
|
}
|
|
|
|
root_cleanup() {
|
|
local root="${1:?}"
|
|
|
|
umount --recursive "$root"
|
|
rm -fr "$root"
|
|
}
|
|
|
|
testcase_sanity() {
|
|
systemd-machine-id-setup
|
|
systemd-machine-id-setup --help
|
|
systemd-machine-id-setup --version
|
|
systemd-machine-id-setup --print
|
|
systemd-machine-id-setup --root= --print
|
|
systemd-machine-id-setup --root=/ --print
|
|
|
|
(! systemd-machine-id-setup "")
|
|
(! systemd-machine-id-setup --foo)
|
|
}
|
|
|
|
testcase_invalid() {
|
|
local root machine_id
|
|
|
|
root="$(mktemp -d)"
|
|
trap "root_cleanup $root" RETURN
|
|
root_mock "$root"
|
|
|
|
systemd-machine-id-setup --print --root "$root"
|
|
echo abc >>"$root/etc/machine-id"
|
|
machine_id="$(systemd-machine-id-setup --print --root "$root")"
|
|
diff <(echo "$machine_id") "$root/etc/machine-id"
|
|
}
|
|
|
|
testcase_transient() {
|
|
local root transient_id committed_id
|
|
|
|
root="$(mktemp -d)"
|
|
trap "root_cleanup $root" RETURN
|
|
root_mock "$root"
|
|
|
|
systemd-machine-id-setup --print --root "$root"
|
|
echo abc >>"$root/etc/machine-id"
|
|
mount -o remount,ro "$root"
|
|
mount -t tmpfs tmpfs "$root/run"
|
|
transient_id="$(systemd-machine-id-setup --print --root "$root")"
|
|
mount -o remount,rw "$root"
|
|
committed_id="$(systemd-machine-id-setup --print --commit --root "$root")"
|
|
[[ "$transient_id" == "$committed_id" ]]
|
|
diff "$root/etc/machine-id" "$root/run/machine-id"
|
|
}
|
|
|
|
# Check if we correctly processed the invalid machine ID we set up in the respective
|
|
# test.sh file
|
|
systemctl --state=failed --no-legend --no-pager >/failed
|
|
test ! -s /failed
|
|
|
|
run_testcases
|