#!/usr/bin/env bash # SPDX-License-Identifier: LGPL-2.1-or-later set -ex set -o pipefail # Wait for a service to enter a state within a timeout period, if it doesn't # enter the desired state within the timeout period then this function will # exit the test case with a non zero exit code. wait_on_state_or_fail () { service=$1 expected_state=$2 timeout=$3 state=$(systemctl show "$service" --property=ActiveState --value) while [ "$state" != "$expected_state" ]; do if [ "$timeout" = "0" ]; then systemd-analyze log-level info exit 1 fi timeout=$((timeout - 1)) sleep 1 state=$(systemctl show "$service" --property=ActiveState --value) done } systemd-analyze log-level debug systemd-analyze log-target console # Trigger testservice-failure-exit-handler-68.service cat >/run/systemd/system/testservice-failure-68.service </run/systemd/system/testservice-failure-68-additional.service </run/systemd/system/testservice-success-68.service </run/systemd/system/testservice-success-68-additional.service <= 1 service # details since jobs may merge. cat >/tmp/check_on_success.sh </run/systemd/system/testservice-success-exit-handler-68.service <=1 service # details since jobs may merge. cat >/tmp/check_on_failure.sh </run/systemd/system/testservice-failure-exit-handler-68.service </testok exit 0