summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrantisek Sumsal <frantisek@sumsal.cz>2023-05-16 18:31:45 +0200
committerFrantisek Sumsal <frantisek@sumsal.cz>2023-05-16 21:49:09 +0200
commitb4d42a82eb95eada226856722f49dc8d898df8f2 (patch)
treef2ef426770d7738a682571be10c05367b02fe7b4
parent79567763a26d70ffbfaefadb4bafdb4920c47d2c (diff)
downloadsystemd-b4d42a82eb95eada226856722f49dc8d898df8f2.tar.gz
test: merge TEST-14-MACHINE-ID into TEST-74-AUX-UTILS
l---------test/TEST-14-MACHINE-ID/Makefile1
-rwxr-xr-xtest/TEST-14-MACHINE-ID/test.sh16
-rwxr-xr-xtest/TEST-74-AUX-UTILS/test.sh6
-rw-r--r--test/units/testsuite-14.service9
-rwxr-xr-xtest/units/testsuite-14.sh39
-rwxr-xr-xtest/units/testsuite-74.machine-id-setup.sh82
6 files changed, 88 insertions, 65 deletions
diff --git a/test/TEST-14-MACHINE-ID/Makefile b/test/TEST-14-MACHINE-ID/Makefile
deleted file mode 120000
index e9f93b1104..0000000000
--- a/test/TEST-14-MACHINE-ID/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-../TEST-01-BASIC/Makefile \ No newline at end of file
diff --git a/test/TEST-14-MACHINE-ID/test.sh b/test/TEST-14-MACHINE-ID/test.sh
deleted file mode 100755
index afaa4cfbc6..0000000000
--- a/test/TEST-14-MACHINE-ID/test.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/usr/bin/env bash
-# SPDX-License-Identifier: LGPL-2.1-or-later
-set -e
-
-TEST_DESCRIPTION="/etc/machine-id testing"
-IMAGE_NAME="badid"
-TEST_NO_NSPAWN=1
-
-# shellcheck source=test/test-functions
-. "${TEST_BASE_DIR:?}/test-functions"
-
-test_append_files() {
- printf "556f48e837bc4424a710fa2e2c9d3e3c\ne3d\n" >"${1:?}/etc/machine-id"
-}
-
-do_test "$@"
diff --git a/test/TEST-74-AUX-UTILS/test.sh b/test/TEST-74-AUX-UTILS/test.sh
index f422c89141..6b7c251049 100755
--- a/test/TEST-74-AUX-UTILS/test.sh
+++ b/test/TEST-74-AUX-UTILS/test.sh
@@ -7,4 +7,10 @@ TEST_DESCRIPTION="Tests for auxiliary utilities"
# shellcheck source=test/test-functions
. "${TEST_BASE_DIR:?}/test-functions"
+test_append_files() {
+ local workspace="${1:?}"
+
+ printf "556f48e837bc4424a710fa2e2c9d3e3c\ne3d\n" >"$workspace/etc/machine-id"
+}
+
do_test "$@"
diff --git a/test/units/testsuite-14.service b/test/units/testsuite-14.service
deleted file mode 100644
index 23644e53a7..0000000000
--- a/test/units/testsuite-14.service
+++ /dev/null
@@ -1,9 +0,0 @@
-# SPDX-License-Identifier: LGPL-2.1-or-later
-[Unit]
-Description=TEST-14-MACHINE-ID
-
-[Service]
-ExecStartPre=rm -f /failed /testok
-ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh
-ExecStart=/bin/sh -e -x -c 'systemctl --state=failed --no-legend --no-pager >/failed ; echo OK >/testok'
-Type=oneshot
diff --git a/test/units/testsuite-14.sh b/test/units/testsuite-14.sh
deleted file mode 100755
index 54275910cf..0000000000
--- a/test/units/testsuite-14.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-# SPDX-License-Identifier: LGPL-2.1-or-later
-set -eux
-set -o pipefail
-
-function setup_root {
- local _root="$1"
- mkdir -p "$_root"
- mount -t tmpfs tmpfs "$_root"
- mkdir -p "$_root/etc" "$_root/run"
-}
-
-function check {
- printf "Expected\n"
- cat "$1"
- printf "\nGot\n"
- cat "$2"
- cmp "$1" "$2"
-}
-
-r="$(pwd)/overwrite-broken-machine-id"
-setup_root "$r"
-systemd-machine-id-setup --print --root "$r"
-echo abc >>"$r/etc/machine-id"
-id="$(systemd-machine-id-setup --print --root "$r")"
-echo "$id" >expected
-check expected "$r/etc/machine-id"
-
-r="$PWD/transient-machine-id"
-setup_root "$r"
-systemd-machine-id-setup --print --root "$r"
-echo abc >>"$r/etc/machine-id"
-mount -o remount,ro "$r"
-mount -t tmpfs tmpfs "$r/run"
-transient_id="$(systemd-machine-id-setup --print --root "$r")"
-mount -o remount,rw "$r"
-commited_id="$(systemd-machine-id-setup --print --commit --root "$r")"
-[[ "$transient_id" = "$commited_id" ]]
-check "$r/etc/machine-id" "$r/run/machine-id"
diff --git a/test/units/testsuite-74.machine-id-setup.sh b/test/units/testsuite-74.machine-id-setup.sh
new file mode 100755
index 0000000000..a24f9d299e
--- /dev/null
+++ b/test/units/testsuite-74.machine-id-setup.sh
@@ -0,0 +1,82 @@
+#!/usr/bin/env bash
+# SPDX-License-Identifier: LGPL-2.1-or-later
+# shellcheck disable=SC2064
+set -eux
+set -o pipefail
+
+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
+
+# Create a list of all functions prefixed with testcase_
+mapfile -t TESTCASES < <(declare -F | awk '$3 ~ /^testcase_/ {print $3;}')
+
+if [[ "${#TESTCASES[@]}" -eq 0 ]]; then
+ echo >&2 "No test cases found, this is most likely an error"
+ exit 1
+fi
+
+for testcase in "${TESTCASES[@]}"; do
+ "$testcase"
+done