diff options
author | Lennart Poettering <lennart@poettering.net> | 2017-11-21 11:57:42 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-21 11:57:42 +0100 |
commit | 0b0c55fafd9b7e4ca043578addbace5382fe154f (patch) | |
tree | 9a4e3497e4f1b68f875ef71351ef8a099687cd2d /test | |
parent | 8ad93cacf0fd397587910a4b6dade79c0c5fec88 (diff) | |
parent | 9a92a97a94b94727e49b1c08ef2caeb1b993bfb9 (diff) | |
download | systemd-0b0c55fafd9b7e4ca043578addbace5382fe154f.tar.gz |
Merge pull request #7363 from poettering/success-action
Generalize FailureAction=, and add SuccessAction=
Diffstat (limited to 'test')
-rw-r--r-- | test/TEST-18-FAILUREACTION/Makefile | 4 | ||||
-rwxr-xr-x | test/TEST-18-FAILUREACTION/test.sh | 42 | ||||
-rwxr-xr-x | test/TEST-18-FAILUREACTION/testsuite.sh | 18 | ||||
-rw-r--r-- | test/test-functions | 2 |
4 files changed, 65 insertions, 1 deletions
diff --git a/test/TEST-18-FAILUREACTION/Makefile b/test/TEST-18-FAILUREACTION/Makefile new file mode 100644 index 0000000000..b895de8bcb --- /dev/null +++ b/test/TEST-18-FAILUREACTION/Makefile @@ -0,0 +1,4 @@ +include ../Makefile.guess + +all setup clean run: + @basedir=../.. TEST_BASE_DIR=../ BUILD_DIR=$(BUILD_DIR) ./test.sh --$@ diff --git a/test/TEST-18-FAILUREACTION/test.sh b/test/TEST-18-FAILUREACTION/test.sh new file mode 100755 index 0000000000..e48ba9bac3 --- /dev/null +++ b/test/TEST-18-FAILUREACTION/test.sh @@ -0,0 +1,42 @@ +#!/bin/bash +# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- +# ex: ts=8 sw=4 sts=4 et filetype=sh +set -e +TEST_DESCRIPTION="FailureAction= operation" + +. $TEST_BASE_DIR/test-functions +QEMU_TIMEOUT=180 + +test_setup() { + create_empty_image + mkdir -p $TESTDIR/root + mount ${LOOPDEV}p1 $TESTDIR/root + + ( + LOG_LEVEL=5 + eval $(udevadm info --export --query=env --name=${LOOPDEV}p2) + + setup_basic_environment + + # setup the testsuite service + cat >$initdir/etc/systemd/system/testsuite.service <<EOF +[Unit] +Description=Testsuite service + +[Service] +ExecStart=/bin/bash -x /testsuite.sh +Type=oneshot +StandardOutput=tty +StandardError=tty +EOF + cp testsuite.sh $initdir/ + + setup_testsuite + ) || return 1 + setup_nspawn_root + + ddebug "umount $TESTDIR/root" + umount $TESTDIR/root +} + +do_test "$@" diff --git a/test/TEST-18-FAILUREACTION/testsuite.sh b/test/TEST-18-FAILUREACTION/testsuite.sh new file mode 100755 index 0000000000..1867cc3c47 --- /dev/null +++ b/test/TEST-18-FAILUREACTION/testsuite.sh @@ -0,0 +1,18 @@ +#!/bin/bash +# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- +# ex: ts=8 sw=4 sts=4 et filetype=sh +set -ex +set -o pipefail + +systemd-run --wait -p FailureAction=poweroff true +! systemd-run --wait -p SuccessAction=poweroff false + +if test -f /firstphase ; then + echo OK > /firstphase + systemd-run --wait -p SuccessAction=reboot true +else + echo OK > /testok + systemd-run --wait -p FailureAction=poweroff false +fi + +sleep infinity diff --git a/test/test-functions b/test/test-functions index 0413e166f2..853ef5d312 100644 --- a/test/test-functions +++ b/test/test-functions @@ -21,7 +21,7 @@ if ! ROOTLIBDIR=$(pkg-config --variable=systemdutildir systemd); then ROOTLIBDIR=/usr/lib/systemd fi -BASICTOOLS="sh bash setsid loadkeys setfont login sulogin gzip sleep echo mount umount cryptsetup date dmsetup modprobe sed cmp tee rm" +BASICTOOLS="sh bash setsid loadkeys setfont login sulogin gzip sleep echo mount umount cryptsetup date dmsetup modprobe sed cmp tee rm true false" DEBUGTOOLS="df free ls stty cat ps ln ip route dmesg dhclient mkdir cp ping dhclient strace less grep id tty touch du sort hostname find" STATEDIR="${BUILD_DIR:-.}/test/$(basename $(dirname $(realpath $0)))" |