From: Yu Watanabe Date: Mon, 22 Aug 2022 05:05:22 +0000 (+0900) Subject: test: add test case for chassis type X-Git-Tag: v252-rc1~387^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1283eea8f4298fd8749db4906129c83ec1b1ae2e;p=thirdparty%2Fsystemd.git test: add test case for chassis type --- 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