]>
Commit | Line | Data |
---|---|---|
03ae6f7d | 1 | #!/bin/bash |
818567fc | 2 | set -e |
03ae6f7d | 3 | TEST_DESCRIPTION="https://github.com/systemd/systemd/issues/3171" |
054ee249 | 4 | TEST_NO_QEMU=1 |
03ae6f7d EV |
5 | |
6 | . $TEST_BASE_DIR/test-functions | |
7 | ||
03ae6f7d | 8 | test_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 | |
17 | dracut_install cat mv stat nc | |
18 | ||
056ae881 YW |
19 | # mask some services that we do not want to run in these tests |
20 | ln -fs /dev/null $initdir/etc/systemd/system/systemd-hwdb-update.service | |
21 | ln -fs /dev/null $initdir/etc/systemd/system/systemd-journal-catalog-update.service | |
22 | ln -fs /dev/null $initdir/etc/systemd/system/systemd-networkd.service | |
23 | ln -fs /dev/null $initdir/etc/systemd/system/systemd-networkd.socket | |
24 | ln -fs /dev/null $initdir/etc/systemd/system/systemd-resolved.service | |
25 | ln -fs /dev/null $initdir/etc/systemd/system/systemd-machined.service | |
26 | ||
03ae6f7d EV |
27 | # setup the testsuite service |
28 | cat >$initdir/etc/systemd/system/testsuite.service <<EOF | |
29 | [Unit] | |
30 | Description=Testsuite service | |
31 | After=multi-user.target | |
32 | ||
33 | [Service] | |
34 | ExecStart=/test-socket-group.sh | |
35 | Type=oneshot | |
36 | EOF | |
37 | ||
03ae6f7d EV |
38 | cat >$initdir/test-socket-group.sh <<'EOF' |
39 | #!/bin/bash | |
40 | set -x | |
41 | set -e | |
42 | set -o pipefail | |
43 | ||
44 | U=/run/systemd/system/test.socket | |
45 | cat <<'EOL' >$U | |
46 | [Unit] | |
47 | Description=Test socket | |
48 | [Socket] | |
49 | Accept=yes | |
50 | ListenStream=/run/test.socket | |
51 | SocketGroup=adm | |
52 | SocketMode=0660 | |
53 | EOL | |
54 | ||
55 | cat <<'EOL' > /run/systemd/system/test@.service | |
56 | [Unit] | |
57 | Description=Test service | |
58 | [Service] | |
59 | StandardInput=socket | |
60 | ExecStart=/bin/sh -x -c cat | |
61 | EOL | |
62 | ||
63 | systemctl start test.socket | |
64 | systemctl is-active test.socket | |
65 | [[ "$(stat --format='%G' /run/test.socket)" == adm ]] | |
c618423a | 66 | echo A | nc -w1 -U /run/test.socket |
03ae6f7d EV |
67 | |
68 | mv $U ${U}.disabled | |
69 | systemctl daemon-reload | |
70 | systemctl is-active test.socket | |
71 | [[ "$(stat --format='%G' /run/test.socket)" == adm ]] | |
c618423a | 72 | echo B | nc -w1 -U /run/test.socket && exit 1 |
03ae6f7d EV |
73 | |
74 | mv ${U}.disabled $U | |
75 | systemctl daemon-reload | |
76 | systemctl is-active test.socket | |
c618423a | 77 | echo C | nc -w1 -U /run/test.socket && exit 1 |
03ae6f7d EV |
78 | [[ "$(stat --format='%G' /run/test.socket)" == adm ]] |
79 | ||
80 | systemctl restart test.socket | |
81 | systemctl is-active test.socket | |
c618423a | 82 | echo D | nc -w1 -U /run/test.socket |
03ae6f7d EV |
83 | [[ "$(stat --format='%G' /run/test.socket)" == adm ]] |
84 | ||
85 | ||
86 | touch /testok | |
87 | EOF | |
88 | ||
89 | chmod 0755 $initdir/test-socket-group.sh | |
90 | setup_testsuite | |
cc469c3d | 91 | ) |
03ae6f7d EV |
92 | |
93 | setup_nspawn_root | |
03ae6f7d EV |
94 | } |
95 | ||
03ae6f7d | 96 | do_test "$@" |