From 1283eea8f4298fd8749db4906129c83ec1b1ae2e Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Mon, 22 Aug 2022 14:05:22 +0900 Subject: [PATCH] test: add test case for chassis type --- test/units/testsuite-71.sh | 46 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/test/units/testsuite-71.sh b/test/units/testsuite-71.sh index 34fcaad961d..2382cccb3a0 100755 --- a/test/units/testsuite-71.sh +++ b/test/units/testsuite-71.sh @@ -44,9 +44,55 @@ test_hostname() { fi } +restore_machine_info() { + if [[ -e /tmp/machine-info.bak ]]; then + mv /tmp/machine-info.bak /etc/machine-info + else + rm -f /etc/machine-info + fi +} + +get_chassis() ( + # shellcheck source=/dev/null + . /etc/machine-info + + echo "$CHASSIS" +) + +test_chassis() { + local i + + if [[ -f /etc/machine-info ]]; then + cp /etc/machine-info /tmp/machine-info.bak + fi + + trap restore_machine_info RETURN + + # Invalid chassis type is refused + assert_rc 1 hostnamectl chassis hoge + + # Valid chassis types + for i in vm container desktop laptop convertible server tablet handset watch embedded; do + hostnamectl chassis "$i" + assert_eq "$(hostnamectl chassis)" "$i" + assert_eq "$(get_chassis)" "$i" + done + + systemctl stop systemd-hostnamed.service + rm -f /etc/machine-info + + # fallback chassis type + if systemd-detect-virt --quiet --container; then + assert_eq "$(hostnamectl chassis)" container + elif systemd-detect-virt --quiet --vm; then + assert_eq "$(hostnamectl chassis)" vm + fi +} + : >/failed test_hostname +test_chassis touch /testok rm /failed -- 2.47.3