]> git.ipfire.org Git - thirdparty/systemd.git/blame - test/TEST-12-ISSUE-3171/test.sh
test: Run qemu/nspawn tests with "set -e"
[thirdparty/systemd.git] / test / TEST-12-ISSUE-3171 / test.sh
CommitLineData
03ae6f7d
EV
1#!/bin/bash
2# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
3# ex: ts=8 sw=4 sts=4 et filetype=sh
818567fc 4set -e
03ae6f7d 5TEST_DESCRIPTION="https://github.com/systemd/systemd/issues/3171"
054ee249 6TEST_NO_QEMU=1
03ae6f7d
EV
7
8. $TEST_BASE_DIR/test-functions
9
03ae6f7d
EV
10test_setup() {
11 create_empty_image
12 mkdir -p $TESTDIR/root
13 mount ${LOOPDEV}p1 $TESTDIR/root
14
15 # Create what will eventually be our root filesystem onto an overlay
16 (
17 LOG_LEVEL=5
18 eval $(udevadm info --export --query=env --name=${LOOPDEV}p2)
19
20 setup_basic_environment
21 dracut_install cat mv stat nc
22
23 # setup the testsuite service
24 cat >$initdir/etc/systemd/system/testsuite.service <<EOF
25[Unit]
26Description=Testsuite service
27After=multi-user.target
28
29[Service]
30ExecStart=/test-socket-group.sh
31Type=oneshot
32EOF
33
34
35 cat >$initdir/test-socket-group.sh <<'EOF'
36#!/bin/bash
37set -x
38set -e
39set -o pipefail
40
41U=/run/systemd/system/test.socket
42cat <<'EOL' >$U
43[Unit]
44Description=Test socket
45[Socket]
46Accept=yes
47ListenStream=/run/test.socket
48SocketGroup=adm
49SocketMode=0660
50EOL
51
52cat <<'EOL' > /run/systemd/system/test@.service
53[Unit]
54Description=Test service
55[Service]
56StandardInput=socket
57ExecStart=/bin/sh -x -c cat
58EOL
59
60systemctl start test.socket
61systemctl is-active test.socket
62[[ "$(stat --format='%G' /run/test.socket)" == adm ]]
c618423a 63echo A | nc -w1 -U /run/test.socket
03ae6f7d
EV
64
65mv $U ${U}.disabled
66systemctl daemon-reload
67systemctl is-active test.socket
68[[ "$(stat --format='%G' /run/test.socket)" == adm ]]
c618423a 69echo B | nc -w1 -U /run/test.socket && exit 1
03ae6f7d
EV
70
71mv ${U}.disabled $U
72systemctl daemon-reload
73systemctl is-active test.socket
c618423a 74echo C | nc -w1 -U /run/test.socket && exit 1
03ae6f7d
EV
75[[ "$(stat --format='%G' /run/test.socket)" == adm ]]
76
77systemctl restart test.socket
78systemctl is-active test.socket
c618423a 79echo D | nc -w1 -U /run/test.socket
03ae6f7d
EV
80[[ "$(stat --format='%G' /run/test.socket)" == adm ]]
81
82
83touch /testok
84EOF
85
86 chmod 0755 $initdir/test-socket-group.sh
87 setup_testsuite
88 ) || return 1
89
90 setup_nspawn_root
91
92 ddebug "umount $TESTDIR/root"
93 umount $TESTDIR/root
94}
95
03ae6f7d 96do_test "$@"