mirror of
https://github.com/systemd/systemd.git
synced 2025-01-18 10:04:04 +03:00
test: integration test for PassFileDescriptorsToExec= option
Check if socket file descriptors are passed to ExecXYZ= commands from the socket unit depending on whether PassFileDescriptorsToExec= option is set.
This commit is contained in:
parent
97df75d7bd
commit
d1813ba436
35
test/testsuite-07.units/pass-fds-to-exec-no.socket
Normal file
35
test/testsuite-07.units/pass-fds-to-exec-no.socket
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||||
|
[Unit]
|
||||||
|
Description=Test if ExecXYZ= commands don't inherit listen FDs when PassFileDescriptorsToExec= is unset
|
||||||
|
|
||||||
|
[Socket]
|
||||||
|
# With Accept= set we don't need a corresponding service unit
|
||||||
|
Accept=yes
|
||||||
|
FileDescriptorName=foo
|
||||||
|
ListenStream=127.0.0.1:1234
|
||||||
|
ListenStream=[::1]:1234
|
||||||
|
PassFileDescriptorsToExec=no
|
||||||
|
ExecStartPre=\
|
||||||
|
test ExecStartPre -a \
|
||||||
|
-z ${LISTEN_FDS} -a \
|
||||||
|
-z ${LISTEN_FDNAMES} -a \
|
||||||
|
! -e /dev/fd/3 -a \
|
||||||
|
! -e /dev/fd/4
|
||||||
|
ExecStartPost=\
|
||||||
|
test ExecStartPost -a \
|
||||||
|
-z ${LISTEN_FDS} -a \
|
||||||
|
-z ${LISTEN_FDNAMES} -a \
|
||||||
|
! -e /dev/fd/3 -a \
|
||||||
|
! -e /dev/fd/4
|
||||||
|
ExecStopPre=\
|
||||||
|
test ExecStopPre -a \
|
||||||
|
-z ${LISTEN_FDS} -a \
|
||||||
|
-z ${LISTEN_FDNAMES} -a \
|
||||||
|
! -e /dev/fd/3 -a \
|
||||||
|
! -e /dev/fd/4
|
||||||
|
ExecStopPost=\
|
||||||
|
test ExecStopPost -a \
|
||||||
|
-z ${LISTEN_FDS} -a \
|
||||||
|
-z ${LISTEN_FDNAMES} -a \
|
||||||
|
! -e /dev/fd/3 -a \
|
||||||
|
! -e /dev/fd/4
|
36
test/testsuite-07.units/pass-fds-to-exec-yes.socket
Normal file
36
test/testsuite-07.units/pass-fds-to-exec-yes.socket
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||||
|
[Unit]
|
||||||
|
Description=Test if ExecXYZ= commands inherit listen FDs when PassFileDescriptorsToExec= is set
|
||||||
|
|
||||||
|
[Socket]
|
||||||
|
# With Accept= set we don't need a corresponding service unit
|
||||||
|
Accept=yes
|
||||||
|
FileDescriptorName=foo
|
||||||
|
ListenStream=127.0.0.1:1234
|
||||||
|
ListenStream=[::1]:1234
|
||||||
|
PassFileDescriptorsToExec=yes
|
||||||
|
# ExecStartPre runs before we create sockets. Nothing to pass.
|
||||||
|
ExecStartPre=\
|
||||||
|
test ExecStartPre -a \
|
||||||
|
-z ${LISTEN_FDS} -a \
|
||||||
|
-z ${LISTEN_FDNAMES} -a \
|
||||||
|
! -e /dev/fd/3 -a \
|
||||||
|
! -e /dev/fd/4
|
||||||
|
ExecStartPost=\
|
||||||
|
test ExecStartPost -a \
|
||||||
|
${LISTEN_FDS} = 2 -a \
|
||||||
|
${LISTEN_FDNAMES} = foo:foo -a \
|
||||||
|
-S /dev/fd/3 -a \
|
||||||
|
-S /dev/fd/4
|
||||||
|
ExecStopPre=\
|
||||||
|
test "ExecStopPre" -a \
|
||||||
|
${LISTEN_FDS} = 2 -a \
|
||||||
|
${LISTEN_FDNAMES} = foo:foo -a \
|
||||||
|
-S /dev/fd/3 -a \
|
||||||
|
-S /dev/fd/4
|
||||||
|
ExecStopPost=\
|
||||||
|
test "ExecStopPost" -a \
|
||||||
|
${LISTEN_FDS} = 2 -a \
|
||||||
|
${LISTEN_FDNAMES} = foo:foo -a \
|
||||||
|
-S /dev/fd/3 -a \
|
||||||
|
-S /dev/fd/4
|
11
test/units/testsuite-07.socket-pass-fds.sh
Executable file
11
test/units/testsuite-07.socket-pass-fds.sh
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||||
|
set -eux
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
# Test PassFileDescriptorsToExec= option in socket units
|
||||||
|
|
||||||
|
for u in pass-fds-to-exec-{no,yes}.socket; do
|
||||||
|
systemctl start "$u"
|
||||||
|
systemctl stop "$u"
|
||||||
|
done
|
Loading…
x
Reference in New Issue
Block a user