summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMichal Schmidt <mschmidt@redhat.com>2013-02-22 18:59:07 +0100
committerMichal Schmidt <mschmidt@redhat.com>2013-02-23 14:18:17 +0100
commitd710d36375bacbf9cfb8903107bedf2c0aada84e (patch)
tree9ac862722f5efc863e841c63db015f9c85aea9b7 /test
parentf948423bb565194a5a8242f556bacf6f7e2d3273 (diff)
downloadsystemd-d710d36375bacbf9cfb8903107bedf2c0aada84e.tar.gz
test: test irreversible jobs
Diffstat (limited to 'test')
-rwxr-xr-xtest/TEST-03-JOBS/test-jobs.sh13
-rwxr-xr-xtest/TEST-03-JOBS/test.sh5
-rw-r--r--test/unstoppable.service5
3 files changed, 21 insertions, 2 deletions
diff --git a/test/TEST-03-JOBS/test-jobs.sh b/test/TEST-03-JOBS/test-jobs.sh
index 98746c5363..12b38af942 100755
--- a/test/TEST-03-JOBS/test-jobs.sh
+++ b/test/TEST-03-JOBS/test-jobs.sh
@@ -24,5 +24,18 @@ grep 'hello\.service' /root/list-jobs.txt && exit 1
# TODO: add more job queueing/merging tests here.
+# Test for irreversible jobs
+systemctl start unstoppable.service || exit 1
+
+# This is expected to fail with 'job cancelled'
+systemctl stop unstoppable.service && exit 1
+# But this should succeed
+systemctl stop --irreversible unstoppable.service || exit 1
+
+# We're going to shutdown soon. Let's see if it succeeds when
+# there's an active service that tries to be unstoppable.
+# Shutdown of the container/VM will hang if not.
+systemctl start unstoppable.service || exit 1
+
touch /testok
exit 0
diff --git a/test/TEST-03-JOBS/test.sh b/test/TEST-03-JOBS/test.sh
index bd211f3ad5..6eaba72e57 100755
--- a/test/TEST-03-JOBS/test.sh
+++ b/test/TEST-03-JOBS/test.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
-TEST_DESCRIPTION="Job merging"
+TEST_DESCRIPTION="Job-related tests"
KVERSION=${KVERSION-$(uname -r)}
KERNEL_VER=$(uname -r)
@@ -138,7 +138,8 @@ Type=oneshot
EOF
# copy the units used by this test
- cp $TEST_BASE_DIR/{hello.service,sleep.service,hello-after-sleep.target} $initdir/etc/systemd/system
+ cp $TEST_BASE_DIR/{hello.service,sleep.service,hello-after-sleep.target,unstoppable.service} \
+ $initdir/etc/systemd/system
cp test-jobs.sh $initdir/
mkdir -p $initdir/etc/systemd/system/testsuite.target.wants
diff --git a/test/unstoppable.service b/test/unstoppable.service
new file mode 100644
index 0000000000..24fb0a25e1
--- /dev/null
+++ b/test/unstoppable.service
@@ -0,0 +1,5 @@
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/bin/echo 'I'm unstoppable!'
+ExecStop=/bin/systemctl start --no-block unstoppable.service