]>
Commit | Line | Data |
---|---|---|
ff12a795 | 1 | #!/usr/bin/env 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 | |
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] | |
23 | Description=Testsuite service | |
24 | After=multi-user.target | |
25 | ||
26 | [Service] | |
27 | ExecStart=/test-socket-group.sh | |
28 | Type=oneshot | |
29 | EOF | |
30 | ||
03ae6f7d | 31 | cat >$initdir/test-socket-group.sh <<'EOF' |
ff12a795 | 32 | #!/usr/bin/env bash |
03ae6f7d EV |
33 | set -x |
34 | set -e | |
35 | set -o pipefail | |
36 | ||
37 | U=/run/systemd/system/test.socket | |
38 | cat <<'EOL' >$U | |
39 | [Unit] | |
40 | Description=Test socket | |
41 | [Socket] | |
42 | Accept=yes | |
43 | ListenStream=/run/test.socket | |
44 | SocketGroup=adm | |
45 | SocketMode=0660 | |
46 | EOL | |
47 | ||
48 | cat <<'EOL' > /run/systemd/system/test@.service | |
49 | [Unit] | |
50 | Description=Test service | |
51 | [Service] | |
52 | StandardInput=socket | |
53 | ExecStart=/bin/sh -x -c cat | |
54 | EOL | |
55 | ||
56 | systemctl start test.socket | |
57 | systemctl is-active test.socket | |
58 | [[ "$(stat --format='%G' /run/test.socket)" == adm ]] | |
c618423a | 59 | echo A | nc -w1 -U /run/test.socket |
03ae6f7d EV |
60 | |
61 | mv $U ${U}.disabled | |
62 | systemctl daemon-reload | |
63 | systemctl is-active test.socket | |
64 | [[ "$(stat --format='%G' /run/test.socket)" == adm ]] | |
c618423a | 65 | echo B | nc -w1 -U /run/test.socket && exit 1 |
03ae6f7d EV |
66 | |
67 | mv ${U}.disabled $U | |
68 | systemctl daemon-reload | |
69 | systemctl is-active test.socket | |
c618423a | 70 | echo C | nc -w1 -U /run/test.socket && exit 1 |
03ae6f7d EV |
71 | [[ "$(stat --format='%G' /run/test.socket)" == adm ]] |
72 | ||
73 | systemctl restart test.socket | |
74 | systemctl is-active test.socket | |
c618423a | 75 | echo D | nc -w1 -U /run/test.socket |
03ae6f7d EV |
76 | [[ "$(stat --format='%G' /run/test.socket)" == adm ]] |
77 | ||
78 | ||
79 | touch /testok | |
80 | EOF | |
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 | 89 | do_test "$@" |