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