]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: merge TEST-14-MACHINE-ID into TEST-74-AUX-UTILS
authorFrantisek Sumsal <frantisek@sumsal.cz>
Tue, 16 May 2023 16:31:45 +0000 (18:31 +0200)
committerFrantisek Sumsal <frantisek@sumsal.cz>
Tue, 16 May 2023 19:49:09 +0000 (21:49 +0200)
test/TEST-14-MACHINE-ID/Makefile [deleted symlink]
test/TEST-14-MACHINE-ID/test.sh [deleted file]
test/TEST-74-AUX-UTILS/test.sh
test/units/testsuite-14.service [deleted file]
test/units/testsuite-14.sh [deleted file]
test/units/testsuite-74.machine-id-setup.sh [new file with mode: 0755]

diff --git a/test/TEST-14-MACHINE-ID/Makefile b/test/TEST-14-MACHINE-ID/Makefile
deleted file mode 120000 (symlink)
index e9f93b1..0000000
+++ /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 (executable)
index afaa4cf..0000000
+++ /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 "$@"
index f422c89141dfaa39154bede4b32f4c8a16a09468..6b7c251049659edce3267d1e58d65cf47997bdfa 100755 (executable)
@@ -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 (file)
index 23644e5..0000000
+++ /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 (executable)
index 5427591..0000000
+++ /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 (executable)
index 0000000..a24f9d2
--- /dev/null
@@ -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