]> git.ipfire.org Git - thirdparty/systemd.git/blame - test/TEST-12-ISSUE-3171/test.sh
Merge pull request #12661 from mrc0mmand/debug-journalctl-flush
[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
EV
8test_setup() {
9 create_empty_image
10 mkdir -p $TESTDIR/root
11 mount ${LOOPDEV}p1 $TESTDIR/root
12
13 # Create what will eventually be our root filesystem onto an overlay
14 (
15 LOG_LEVEL=5
16 eval $(udevadm info --export --query=env --name=${LOOPDEV}p2)
17
18 setup_basic_environment
19 dracut_install cat mv stat nc
20
056ae881
YW
21 # mask some services that we do not want to run in these tests
22 ln -fs /dev/null $initdir/etc/systemd/system/systemd-hwdb-update.service
23 ln -fs /dev/null $initdir/etc/systemd/system/systemd-journal-catalog-update.service
24 ln -fs /dev/null $initdir/etc/systemd/system/systemd-networkd.service
25 ln -fs /dev/null $initdir/etc/systemd/system/systemd-networkd.socket
26 ln -fs /dev/null $initdir/etc/systemd/system/systemd-resolved.service
27 ln -fs /dev/null $initdir/etc/systemd/system/systemd-machined.service
28
03ae6f7d
EV
29 # setup the testsuite service
30 cat >$initdir/etc/systemd/system/testsuite.service <<EOF
31[Unit]
32Description=Testsuite service
33After=multi-user.target
34
35[Service]
36ExecStart=/test-socket-group.sh
37Type=oneshot
38EOF
39
03ae6f7d
EV
40 cat >$initdir/test-socket-group.sh <<'EOF'
41#!/bin/bash
42set -x
43set -e
44set -o pipefail
45
46U=/run/systemd/system/test.socket
47cat <<'EOL' >$U
48[Unit]
49Description=Test socket
50[Socket]
51Accept=yes
52ListenStream=/run/test.socket
53SocketGroup=adm
54SocketMode=0660
55EOL
56
57cat <<'EOL' > /run/systemd/system/test@.service
58[Unit]
59Description=Test service
60[Service]
61StandardInput=socket
62ExecStart=/bin/sh -x -c cat
63EOL
64
65systemctl start test.socket
66systemctl is-active test.socket
67[[ "$(stat --format='%G' /run/test.socket)" == adm ]]
c618423a 68echo A | nc -w1 -U /run/test.socket
03ae6f7d
EV
69
70mv $U ${U}.disabled
71systemctl daemon-reload
72systemctl is-active test.socket
73[[ "$(stat --format='%G' /run/test.socket)" == adm ]]
c618423a 74echo B | nc -w1 -U /run/test.socket && exit 1
03ae6f7d
EV
75
76mv ${U}.disabled $U
77systemctl daemon-reload
78systemctl is-active test.socket
c618423a 79echo C | nc -w1 -U /run/test.socket && exit 1
03ae6f7d
EV
80[[ "$(stat --format='%G' /run/test.socket)" == adm ]]
81
82systemctl restart test.socket
83systemctl is-active test.socket
c618423a 84echo D | nc -w1 -U /run/test.socket
03ae6f7d
EV
85[[ "$(stat --format='%G' /run/test.socket)" == adm ]]
86
87
88touch /testok
89EOF
90
91 chmod 0755 $initdir/test-socket-group.sh
92 setup_testsuite
93 ) || return 1
94
95 setup_nspawn_root
96
97 ddebug "umount $TESTDIR/root"
98 umount $TESTDIR/root
99}
100
03ae6f7d 101do_test "$@"