diff --git a/test/TEST-11-ISSUE-3166/test.sh b/test/TEST-11-ISSUE-3166/test.sh index e444414a90..0fe0eaeed1 100755 --- a/test/TEST-11-ISSUE-3166/test.sh +++ b/test/TEST-11-ISSUE-3166/test.sh @@ -15,48 +15,7 @@ test_setup() { setup_basic_environment mask_supporting_services - dracut_install false touch - - # setup the testsuite service - cat >$initdir/etc/systemd/system/testsuite.service <$initdir/etc/systemd/system/fail-on-restart.service <$initdir/test-fail-on-restart.sh <<'EOF' -#!/usr/bin/env bash -set -x - -systemctl start fail-on-restart.service -active_state=$(systemctl show --property ActiveState fail-on-restart.service) -while [[ "$active_state" == "ActiveState=activating" || "$active_state" == "ActiveState=active" ]]; do - sleep 1 - active_state=$(systemctl show --property ActiveState fail-on-restart.service) -done -systemctl is-failed fail-on-restart.service || exit 1 -touch /testok -EOF - - chmod 0755 $initdir/test-fail-on-restart.sh - setup_testsuite ) } -do_test "$@" +do_test "$@" 11 diff --git a/test/meson.build b/test/meson.build index f0444b8fa1..f109d85650 100644 --- a/test/meson.build +++ b/test/meson.build @@ -18,6 +18,8 @@ install_subdir('testsuite-06.units', install_dir : testdata_dir) install_subdir('testsuite-10.units', install_dir : testdata_dir) +install_subdir('testsuite-11.units', + install_dir : testdata_dir) testsuite08_dir = testdata_dir + '/testsuite-08.units' install_data('testsuite-08.units/-.mount', diff --git a/test/test-functions b/test/test-functions index 19402b3988..1f4dc8ec6d 100644 --- a/test/test-functions +++ b/test/test-functions @@ -69,6 +69,7 @@ BASICTOOLS=( tail tee test + touch true umount xargs @@ -97,7 +98,6 @@ DEBUGTOOLS=( sort strace stty - touch tty vi ) diff --git a/test/testsuite-11.units/fail-on-restart.service b/test/testsuite-11.units/fail-on-restart.service new file mode 100644 index 0000000000..9264f151f3 --- /dev/null +++ b/test/testsuite-11.units/fail-on-restart.service @@ -0,0 +1,9 @@ +[Unit] +Description=Fail on restart +StartLimitIntervalSec=1m +StartLimitBurst=3 + +[Service] +Type=simple +ExecStart=false +Restart=always diff --git a/test/units/testsuite-11.service b/test/units/testsuite-11.service new file mode 100644 index 0000000000..9093ae8d43 --- /dev/null +++ b/test/units/testsuite-11.service @@ -0,0 +1,6 @@ +[Unit] +Description=TEST-11-ISSUE-3166 + +[Service] +ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh +Type=oneshot diff --git a/test/units/testsuite-11.sh b/test/units/testsuite-11.sh new file mode 100755 index 0000000000..708c7cebb7 --- /dev/null +++ b/test/units/testsuite-11.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +set -x + +systemctl start fail-on-restart.service +active_state=$(systemctl show --value --property ActiveState fail-on-restart.service) +while [[ "$active_state" == "activating" || "$active_state" == "active" ]]; do + sleep 1 + active_state=$(systemctl show --value --property ActiveState fail-on-restart.service) +done +systemctl is-failed fail-on-restart.service || exit 1 +touch /testok