]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: import hostnamed tests from debian/ubuntu test suite
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 14 Jun 2022 00:03:00 +0000 (09:03 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 14 Jun 2022 11:56:18 +0000 (20:56 +0900)
test/TEST-71-HOSTNAME/Makefile [new symlink]
test/TEST-71-HOSTNAME/test.sh [new file with mode: 0755]
test/units/testsuite-71.service [new file with mode: 0644]
test/units/testsuite-71.sh [new file with mode: 0755]

diff --git a/test/TEST-71-HOSTNAME/Makefile b/test/TEST-71-HOSTNAME/Makefile
new file mode 120000 (symlink)
index 0000000..e9f93b1
--- /dev/null
@@ -0,0 +1 @@
+../TEST-01-BASIC/Makefile
\ No newline at end of file
diff --git a/test/TEST-71-HOSTNAME/test.sh b/test/TEST-71-HOSTNAME/test.sh
new file mode 100755 (executable)
index 0000000..7b3d2d1
--- /dev/null
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+# SPDX-License-Identifier: LGPL-2.1-or-later
+set -e
+
+TEST_DESCRIPTION="test hostnamed"
+
+# shellcheck source=test/test-functions
+. "${TEST_BASE_DIR:?}/test-functions"
+
+do_test "$@"
diff --git a/test/units/testsuite-71.service b/test/units/testsuite-71.service
new file mode 100644 (file)
index 0000000..019e8bf
--- /dev/null
@@ -0,0 +1,10 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+[Unit]
+Description=TEST-71-HOSTNAME
+
+[Service]
+ExecStartPre=rm -f /failed /testok
+ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh
+StandardOutput=journal+console
+StandardError=journal+console
+Type=oneshot
diff --git a/test/units/testsuite-71.sh b/test/units/testsuite-71.sh
new file mode 100755 (executable)
index 0000000..34fcaad
--- /dev/null
@@ -0,0 +1,52 @@
+#!/usr/bin/env bash
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+set -eux
+set -o pipefail
+
+# shellcheck source=test/units/assert.sh
+. "$(dirname "$0")"/assert.sh
+
+restore_hostname() {
+    if [[ -e /tmp/hostname.bak ]]; then
+        mv /tmp/hostname.bak /etc/hostname
+    else
+        rm -f /etc/hostname
+    fi
+}
+
+test_hostname() {
+    local orig=
+
+    if [[ -f /etc/hostname ]]; then
+        cp /etc/hostname /tmp/hostname.bak
+        orig=$(cat /etc/hostname)
+    fi
+
+    trap restore_hostname RETURN
+
+    # should activate daemon and work
+    if [[ -n "$orig" ]]; then
+        assert_in "Static hostname: $orig" "$(hostnamectl)"
+    fi
+    assert_in "Kernel: $(uname -s) $(uname -r)" "$(hostnamectl)"
+
+    # change hostname
+    assert_rc 0 hostnamectl set-hostname testhost
+    assert_eq "$(cat /etc/hostname)" "testhost"
+    assert_in "Static hostname: testhost" "$(hostnamectl)"
+
+    if [[ -n "$orig" ]]; then
+        # reset to original
+        assert_rc 0 hostnamectl set-hostname "$orig"
+        assert_eq "$(cat /etc/hostname)" "$orig"
+        assert_in "Static hostname: $orig" "$(hostnamectl)"
+    fi
+}
+
+: >/failed
+
+test_hostname
+
+touch /testok
+rm /failed