| #!/usr/bin/env bash |
| # SPDX-License-Identifier: LGPL-2.1-or-later |
| set -e |
| |
| TEST_REQUIRE_INSTALL_TESTS=0 |
| TEST_DESCRIPTION="testing honor first shutdown" |
| TEST_NO_QEMU=1 |
| |
| # shellcheck source=test/test-functions |
| . "${TEST_BASE_DIR:?}/test-functions" |
| |
| # Using timeout because if the test fails it can loop. |
| # The reason is because the poweroff executed by end.service |
| # could turn into a reboot if the test fails. |
| NSPAWN_TIMEOUT=60 |
| |
| # Remove this file if it exists. This is used along with |
| # the make target "finish". Since concrete confirmation is |
| # only found from the console during the poweroff. |
| rm -f /tmp/honorfirstshutdown.log >/dev/null |
| |
| check_result_nspawn_hook() { |
| grep -q "Shutdown is already active. Skipping emergency action request" /tmp/honorfirstshutdown.log |
| } |
| |
| # Note: don't use a pipe in the following expression, as it breaks the trap |
| # handlers we have defined in test/test-functions. |
| do_test "$@" > >(tee /tmp/honorfirstshutdown.log) |