2 # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
3 # ex: ts=8 sw=4 sts=4 et filetype=sh
5 TEST_DESCRIPTION
="https://github.com/systemd/systemd/issues/3171"
8 .
$TEST_BASE_DIR/test-functions
12 mkdir
-p $TESTDIR/root
13 mount
${LOOPDEV}p1
$TESTDIR/root
15 # Create what will eventually be our root filesystem onto an overlay
18 eval $
(udevadm info
--export --query=env
--name=${LOOPDEV}p2
)
20 setup_basic_environment
21 dracut_install
cat mv stat nc
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
31 # setup the testsuite service
32 cat >$initdir/etc
/systemd
/system
/testsuite.service
<<EOF
34 Description=Testsuite service
35 After=multi-user.target
38 ExecStart=/test-socket-group.sh
42 cat >$initdir/test-socket-group.sh
<<'EOF'
48 U=/run/systemd/system/test.socket
51 Description=Test socket
54 ListenStream=/run/test.socket
59 cat <<'EOL' > /run/systemd/system/test@.service
61 Description=Test service
64 ExecStart=/bin/sh -x -c cat
67 systemctl start test.socket
68 systemctl is-active test.socket
69 [[ "$(stat --format='%G' /run/test.socket)" == adm ]]
70 echo A | nc -w1 -U /run/test.socket
73 systemctl daemon-reload
74 systemctl is-active test.socket
75 [[ "$(stat --format='%G' /run/test.socket)" == adm ]]
76 echo B | nc -w1 -U /run/test.socket && exit 1
79 systemctl daemon-reload
80 systemctl is-active test.socket
81 echo C | nc -w1 -U /run/test.socket && exit 1
82 [[ "$(stat --format='%G' /run/test.socket)" == adm ]]
84 systemctl restart test.socket
85 systemctl is-active test.socket
86 echo D | nc -w1 -U /run/test.socket
87 [[ "$(stat --format='%G' /run/test.socket)" == adm ]]
93 chmod 0755 $initdir/test-socket-group.sh
99 ddebug
"umount $TESTDIR/root"