]> git.proxmox.com Git - systemd.git/blame - test/TEST-12-ISSUE-3171/test.sh
New upstream version 240
[systemd.git] / test / TEST-12-ISSUE-3171 / test.sh
CommitLineData
aa27b158
MP
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
f5e65279 4set -e
aa27b158 5TEST_DESCRIPTION="https://github.com/systemd/systemd/issues/3171"
f5e65279 6TEST_NO_QEMU=1
aa27b158
MP
7
8. $TEST_BASE_DIR/test-functions
9
aa27b158
MP
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
6e866b33
MB
23 # mask some services that we do not want to run in these tests
24 ln -fs /dev/null $initdir/etc/systemd/system/systemd-hwdb-update.service
25 ln -fs /dev/null $initdir/etc/systemd/system/systemd-journal-catalog-update.service
26 ln -fs /dev/null $initdir/etc/systemd/system/systemd-networkd.service
27 ln -fs /dev/null $initdir/etc/systemd/system/systemd-networkd.socket
28 ln -fs /dev/null $initdir/etc/systemd/system/systemd-resolved.service
29 ln -fs /dev/null $initdir/etc/systemd/system/systemd-machined.service
30
aa27b158
MP
31 # setup the testsuite service
32 cat >$initdir/etc/systemd/system/testsuite.service <<EOF
33[Unit]
34Description=Testsuite service
35After=multi-user.target
36
37[Service]
38ExecStart=/test-socket-group.sh
39Type=oneshot
40EOF
41
aa27b158
MP
42 cat >$initdir/test-socket-group.sh <<'EOF'
43#!/bin/bash
44set -x
45set -e
46set -o pipefail
47
48U=/run/systemd/system/test.socket
49cat <<'EOL' >$U
50[Unit]
51Description=Test socket
52[Socket]
53Accept=yes
54ListenStream=/run/test.socket
55SocketGroup=adm
56SocketMode=0660
57EOL
58
59cat <<'EOL' > /run/systemd/system/test@.service
60[Unit]
61Description=Test service
62[Service]
63StandardInput=socket
64ExecStart=/bin/sh -x -c cat
65EOL
66
67systemctl start test.socket
68systemctl is-active test.socket
69[[ "$(stat --format='%G' /run/test.socket)" == adm ]]
81c58355 70echo A | nc -w1 -U /run/test.socket
aa27b158
MP
71
72mv $U ${U}.disabled
73systemctl daemon-reload
74systemctl is-active test.socket
75[[ "$(stat --format='%G' /run/test.socket)" == adm ]]
81c58355 76echo B | nc -w1 -U /run/test.socket && exit 1
aa27b158
MP
77
78mv ${U}.disabled $U
79systemctl daemon-reload
80systemctl is-active test.socket
81c58355 81echo C | nc -w1 -U /run/test.socket && exit 1
aa27b158
MP
82[[ "$(stat --format='%G' /run/test.socket)" == adm ]]
83
84systemctl restart test.socket
85systemctl is-active test.socket
81c58355 86echo D | nc -w1 -U /run/test.socket
aa27b158
MP
87[[ "$(stat --format='%G' /run/test.socket)" == adm ]]
88
89
90touch /testok
91EOF
92
93 chmod 0755 $initdir/test-socket-group.sh
94 setup_testsuite
95 ) || return 1
96
97 setup_nspawn_root
98
99 ddebug "umount $TESTDIR/root"
100 umount $TESTDIR/root
101}
102
aa27b158 103do_test "$@"