1
0
mirror of https://github.com/systemd/systemd.git synced 2024-12-25 01:34:28 +03:00

test: probe a couple more paths in systemd-run

This commit is contained in:
Frantisek Sumsal 2023-06-02 16:53:45 +02:00
parent 878ec7942f
commit 50fb26d237

View File

@ -7,17 +7,10 @@ set -o pipefail
# shellcheck source=test/units/util.sh # shellcheck source=test/units/util.sh
. "$(dirname "$0")"/util.sh . "$(dirname "$0")"/util.sh
# FIXME(?):
# - empty ExecStart= is always inserted
# - weird results with systemd-run --property=ExecStart=false true
# - group settings for each section?
# - i.e systemd-run --remain-after-exit --on-clock-change
# --timer-property=After=systemd-journald.service true
# generates a unit that has two [Unit] and two [Timer] sections
systemd-run --help --no-pager systemd-run --help --no-pager
systemd-run --version systemd-run --version
systemd-run --no-ask-password true systemd-run --no-ask-password true
systemd-run --no-block --collect true
export PARENT_FOO=bar export PARENT_FOO=bar
touch /tmp/public-marker touch /tmp/public-marker
@ -37,8 +30,9 @@ systemd-run --wait --pipe --slice-inherit --slice=foo \
bash -xec '[[ "$(</proc/self/cgroup)" =~ /system\.slice/system-foo\.slice/run-.+\.service$ ]]' bash -xec '[[ "$(</proc/self/cgroup)" =~ /system\.slice/system-foo\.slice/run-.+\.service$ ]]'
# We should not inherit caller's environment # We should not inherit caller's environment
systemd-run --wait --pipe bash -xec '[[ -z "$PARENT_FOO" ]]' systemd-run --wait --pipe bash -xec '[[ -z "$PARENT_FOO" ]]'
systemd-run --wait --pipe bash -xec '[[ "$PWD" == / ]]' systemd-run --wait --pipe bash -xec '[[ "$PWD" == / && -n "$INVOCATION_ID" ]]'
systemd-run --wait --pipe \ systemd-run --wait --pipe \
--send-sighup \
--working-directory="" \ --working-directory="" \
--working-directory=/tmp \ --working-directory=/tmp \
bash -xec '[[ "$PWD" == /tmp ]]' bash -xec '[[ "$PWD" == /tmp ]]'
@ -84,6 +78,13 @@ systemd-run --wait --pipe --user --machine=testuser@ \
bash -xec '[[ "$(</proc/self/cgroup)" =~ /user\.slice/.+/run-.+\.service$ ]]' bash -xec '[[ "$(</proc/self/cgroup)" =~ /user\.slice/.+/run-.+\.service$ ]]'
systemd-run --wait --pipe --user --machine=testuser@ \ systemd-run --wait --pipe --user --machine=testuser@ \
bash -xec '[[ "$(id -nu)" == testuser && "$(id -ng)" == testuser ]]' bash -xec '[[ "$(id -nu)" == testuser && "$(id -ng)" == testuser ]]'
systemd-run --wait --pipe --user --machine=testuser@ \
bash -xec '[[ "$PWD" == /home/testuser && -n "$INVOCATION_ID" ]]'
systemd-run --wait --pipe --user --machine=testuser@ \
--property=LimitCORE=1M:2M \
--property=LimitCORE=16M:32M \
--property=PrivateTmp=yes \
bash -xec '[[ "$(ulimit -c -S)" -eq 16384 && "$(ulimit -c -H)" -eq 32768 && ! -e /tmp/public-marker ]]'
: "Transient scope (system daemon)" : "Transient scope (system daemon)"
systemd-run --scope \ systemd-run --scope \
@ -100,6 +101,10 @@ systemd-run --scope --slice-inherit --slice=foo \
bash -xec '[[ "$(</proc/self/cgroup)" =~ /system\.slice/system-foo\.slice/run-.+\.scope$ ]]' bash -xec '[[ "$(</proc/self/cgroup)" =~ /system\.slice/system-foo\.slice/run-.+\.scope$ ]]'
# We should inherit caller's environment # We should inherit caller's environment
systemd-run --scope bash -xec '[[ "$PARENT_FOO" == bar ]]' systemd-run --scope bash -xec '[[ "$PARENT_FOO" == bar ]]'
systemd-run --scope \
--property=RuntimeMaxSec=10 \
--property=RuntimeMaxSec=infinity \
true
: "Transient scope (user daemon)" : "Transient scope (user daemon)"
# FIXME: https://github.com/systemd/systemd/issues/27883 # FIXME: https://github.com/systemd/systemd/issues/27883
@ -190,8 +195,16 @@ grep -q "^SocketMode=0644$" "/run/systemd/transient/$UNIT.socket"
grep -qE "^ExecStart=.*/bin/true.*$" "/run/systemd/transient/$UNIT.service" grep -qE "^ExecStart=.*/bin/true.*$" "/run/systemd/transient/$UNIT.service"
systemctl stop "$UNIT.socket" "$UNIT.service" || : systemctl stop "$UNIT.socket" "$UNIT.service" || :
: "Interactive options"
SHELL=/bin/true systemd-run --shell
SHELL=/bin/true systemd-run --scope --shell
systemd-run --wait --pty true
systemd-run --wait --machine=.host --pty true
(! SHELL=/bin/false systemd-run --quiet --shell)
(! systemd-run) (! systemd-run)
(! systemd-run "") (! systemd-run "")
(! systemd-run --foo=bar)
(! systemd-run --wait --pipe --slice=foo.service true) (! systemd-run --wait --pipe --slice=foo.service true)
for opt in nice on-{active,boot,calendar,startup,unit-active,unit-inactive} property service-type setenv; do for opt in nice on-{active,boot,calendar,startup,unit-active,unit-inactive} property service-type setenv; do