mirror of
https://github.com/systemd/systemd.git
synced 2025-03-06 00:58:29 +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