mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-03-12 08:58:20 +03:00
test: set ReadWritePaths= for test-.services when built w/ coverage
Let's make the dropin, to make the build dir writable for gcov, a bit more generic, so it can be used by all units starting with prefix test-. This should help with a bunch of recent reports about missing coverage I got, as well as with existing test units using DynamicUser=true. This might feel a bit like a magic trick from behind the curtains, but I want to touch the actual tests as little as possible, since it makes them unnecessarily messy (see the various workarounds for sanitizers), and the coverage reports are generated only in a specific CI job anyway.
This commit is contained in:
parent
6f1fe575f0
commit
e660c590a5
@ -3,8 +3,6 @@
|
||||
set -e
|
||||
|
||||
TEST_DESCRIPTION="Test queue signal logic"
|
||||
# Ignore gcov complaints caused by DynamicUser=true
|
||||
IGNORE_MISSING_COVERAGE=yes
|
||||
|
||||
# shellcheck source=test/test-functions
|
||||
. "$TEST_BASE_DIR/test-functions"
|
||||
|
@ -3,8 +3,6 @@
|
||||
set -e
|
||||
|
||||
TEST_DESCRIPTION="Test Memory Pressure handling"
|
||||
# Ignore gcov complaints caused by DynamicUser=true
|
||||
IGNORE_MISSING_COVERAGE=yes
|
||||
|
||||
# shellcheck source=test/test-functions
|
||||
. "$TEST_BASE_DIR/test-functions"
|
||||
|
@ -1240,11 +1240,14 @@ install_systemd() {
|
||||
mkdir -p "$initdir/etc/systemd/system/service.d/"
|
||||
echo -e "[Service]\nProtectSystem=no\nProtectHome=no\n" >"$initdir/etc/systemd/system/service.d/99-gcov-override.conf"
|
||||
# Similarly, set ReadWritePaths= to the $BUILD_DIR in the test image
|
||||
# to make the coverage work with units utilizing DynamicUser=yes. Do
|
||||
# this only for services from TEST-20, as setting this system-wide
|
||||
# has many undesirable side-effects
|
||||
mkdir -p "$initdir/etc/systemd/system/test20-.service.d/"
|
||||
echo -e "[Service]\nReadWritePaths=${BUILD_DIR:?}\n" >"$initdir/etc/systemd/system/test20-.service.d/99-gcov-rwpaths-override.conf"
|
||||
# to make the coverage work with units using DynamicUser=yes. Do this
|
||||
# only for services with test- prefix, as setting this system-wide
|
||||
# has many undesirable side-effects, as it creates its own namespace.
|
||||
mkdir -p "$initdir/etc/systemd/system/test-.service.d/"
|
||||
echo -e "[Service]\nReadWritePaths=${BUILD_DIR:?}\n" >"$initdir/etc/systemd/system/test-.service.d/99-gcov-rwpaths-override.conf"
|
||||
# Ditto, but for the user daemon
|
||||
mkdir -p "$initdir/etc/systemd/user/test-.service.d/"
|
||||
echo -e "[Service]\nReadWritePaths=${BUILD_DIR:?}\n" >"$initdir/etc/systemd/user/test-.service.d/99-gcov-rwpaths-override.conf"
|
||||
fi
|
||||
|
||||
# If we're built with -Dportabled=false, tests with systemd-analyze
|
||||
|
@ -7,37 +7,37 @@ test_scope_unpriv_delegation() {
|
||||
useradd test ||:
|
||||
trap "userdel -r test" RETURN
|
||||
|
||||
systemd-run --uid=test -p User=test -p Delegate=yes --slice workload.slice --unit workload0.scope --scope \
|
||||
test -w /sys/fs/cgroup/workload.slice/workload0.scope -a \
|
||||
-w /sys/fs/cgroup/workload.slice/workload0.scope/cgroup.procs -a \
|
||||
-w /sys/fs/cgroup/workload.slice/workload0.scope/cgroup.subtree_control
|
||||
systemd-run --uid=test -p User=test -p Delegate=yes --slice workload.slice --unit test-workload0.scope --scope \
|
||||
test -w /sys/fs/cgroup/workload.slice/test-workload0.scope -a \
|
||||
-w /sys/fs/cgroup/workload.slice/test-workload0.scope/cgroup.procs -a \
|
||||
-w /sys/fs/cgroup/workload.slice/test-workload0.scope/cgroup.subtree_control
|
||||
}
|
||||
|
||||
if grep -q cgroup2 /proc/filesystems ; then
|
||||
systemd-run --wait --unit=test0.service -p "DynamicUser=1" -p "Delegate=" \
|
||||
test -w /sys/fs/cgroup/system.slice/test0.service/ -a \
|
||||
-w /sys/fs/cgroup/system.slice/test0.service/cgroup.procs -a \
|
||||
-w /sys/fs/cgroup/system.slice/test0.service/cgroup.subtree_control
|
||||
systemd-run --wait --unit=test-0.service -p "DynamicUser=1" -p "Delegate=" \
|
||||
test -w /sys/fs/cgroup/system.slice/test-0.service/ -a \
|
||||
-w /sys/fs/cgroup/system.slice/test-0.service/cgroup.procs -a \
|
||||
-w /sys/fs/cgroup/system.slice/test-0.service/cgroup.subtree_control
|
||||
|
||||
systemd-run --wait --unit=test1.service -p "DynamicUser=1" -p "Delegate=memory pids" \
|
||||
grep -q memory /sys/fs/cgroup/system.slice/test1.service/cgroup.controllers
|
||||
systemd-run --wait --unit=test-1.service -p "DynamicUser=1" -p "Delegate=memory pids" \
|
||||
grep -q memory /sys/fs/cgroup/system.slice/test-1.service/cgroup.controllers
|
||||
|
||||
systemd-run --wait --unit=test2.service -p "DynamicUser=1" -p "Delegate=memory pids" \
|
||||
grep -q pids /sys/fs/cgroup/system.slice/test2.service/cgroup.controllers
|
||||
systemd-run --wait --unit=test-2.service -p "DynamicUser=1" -p "Delegate=memory pids" \
|
||||
grep -q pids /sys/fs/cgroup/system.slice/test-2.service/cgroup.controllers
|
||||
|
||||
# "io" is not among the controllers enabled by default for all units, verify that
|
||||
grep -qv io /sys/fs/cgroup/system.slice/cgroup.controllers
|
||||
|
||||
# Run a service with "io" enabled, and verify it works
|
||||
systemd-run --wait --unit=test3.service -p "IOAccounting=yes" -p "Slice=system-foo-bar-baz.slice" \
|
||||
grep -q io /sys/fs/cgroup/system.slice/system-foo.slice/system-foo-bar.slice/system-foo-bar-baz.slice/test3.service/cgroup.controllers
|
||||
systemd-run --wait --unit=test-3.service -p "IOAccounting=yes" -p "Slice=system-foo-bar-baz.slice" \
|
||||
grep -q io /sys/fs/cgroup/system.slice/system-foo.slice/system-foo-bar.slice/system-foo-bar-baz.slice/test-3.service/cgroup.controllers
|
||||
|
||||
# We want to check if "io" is removed again from the controllers
|
||||
# list. However, PID 1 (rightfully) does this asynchronously. In order
|
||||
# to force synchronization on this, let's start a short-lived service
|
||||
# which requires PID 1 to refresh the cgroup tree, so that we can
|
||||
# verify that this all works.
|
||||
systemd-run --wait --unit=test4.service true
|
||||
systemd-run --wait --unit=test-4.service true
|
||||
|
||||
# And now check again, "io" should have vanished
|
||||
grep -qv io /sys/fs/cgroup/system.slice/cgroup.controllers
|
||||
|
@ -13,8 +13,8 @@ INTERNALPID=$!
|
||||
disown
|
||||
|
||||
# Start a test process outside of our own cgroup
|
||||
systemd-run -p DynamicUser=1 --unit=test20-sleep.service /bin/sleep infinity
|
||||
EXTERNALPID="$(systemctl show -P MainPID test20-sleep.service)"
|
||||
systemd-run -p DynamicUser=1 --unit=test-sleep.service /bin/sleep infinity
|
||||
EXTERNALPID="$(systemctl show -P MainPID test-sleep.service)"
|
||||
|
||||
# Update our own main PID to the external test PID, this should work
|
||||
systemd-notify MAINPID="$EXTERNALPID"
|
||||
@ -54,7 +54,7 @@ test "$(systemctl show -P MainPID testsuite-20.service)" -eq "$INTERNALPID"
|
||||
systemd-notify --uid=1000 MAINPID=$$
|
||||
test "$(systemctl show -P MainPID testsuite-20.service)" -eq $$
|
||||
|
||||
cat >/tmp/test20-mainpid.sh <<EOF
|
||||
cat >/tmp/test-mainpid.sh <<EOF
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -eux
|
||||
@ -73,12 +73,12 @@ disown
|
||||
|
||||
echo \$MAINPID >/run/mainpidsh/pid
|
||||
EOF
|
||||
chmod +x /tmp/test20-mainpid.sh
|
||||
chmod +x /tmp/test-mainpid.sh
|
||||
|
||||
systemd-run --unit=test20-mainpidsh.service -p StandardOutput=tty -p StandardError=tty -p Type=forking -p RuntimeDirectory=mainpidsh -p PIDFile=/run/mainpidsh/pid /tmp/test20-mainpid.sh
|
||||
test "$(systemctl show -P MainPID test20-mainpidsh.service)" -eq "$(cat /run/mainpidsh/pid)"
|
||||
systemd-run --unit=test-mainpidsh.service -p StandardOutput=tty -p StandardError=tty -p Type=forking -p RuntimeDirectory=mainpidsh -p PIDFile=/run/mainpidsh/pid /tmp/test-mainpid.sh
|
||||
test "$(systemctl show -P MainPID test-mainpidsh.service)" -eq "$(cat /run/mainpidsh/pid)"
|
||||
|
||||
cat >/tmp/test20-mainpid2.sh <<EOF
|
||||
cat >/tmp/test-mainpid2.sh <<EOF
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -eux
|
||||
@ -98,12 +98,12 @@ disown
|
||||
echo \$MAINPID >/run/mainpidsh2/pid
|
||||
chown 1001:1001 /run/mainpidsh2/pid
|
||||
EOF
|
||||
chmod +x /tmp/test20-mainpid2.sh
|
||||
chmod +x /tmp/test-mainpid2.sh
|
||||
|
||||
systemd-run --unit=test20-mainpidsh2.service -p StandardOutput=tty -p StandardError=tty -p Type=forking -p RuntimeDirectory=mainpidsh2 -p PIDFile=/run/mainpidsh2/pid /tmp/test20-mainpid2.sh
|
||||
test "$(systemctl show -P MainPID test20-mainpidsh2.service)" -eq "$(cat /run/mainpidsh2/pid)"
|
||||
systemd-run --unit=test-mainpidsh2.service -p StandardOutput=tty -p StandardError=tty -p Type=forking -p RuntimeDirectory=mainpidsh2 -p PIDFile=/run/mainpidsh2/pid /tmp/test-mainpid2.sh
|
||||
test "$(systemctl show -P MainPID test-mainpidsh2.service)" -eq "$(cat /run/mainpidsh2/pid)"
|
||||
|
||||
cat >/dev/shm/test20-mainpid3.sh <<EOF
|
||||
cat >/dev/shm/test-mainpid3.sh <<EOF
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -eux
|
||||
@ -124,11 +124,11 @@ ln -s ../mainpidsh/pid /run/mainpidsh3/pid
|
||||
# Quick assertion that the link isn't dead
|
||||
test -f /run/mainpidsh3/pid
|
||||
EOF
|
||||
chmod 755 /dev/shm/test20-mainpid3.sh
|
||||
chmod 755 /dev/shm/test-mainpid3.sh
|
||||
|
||||
# This has to fail, as we shouldn't accept the dangerous PID file, and then
|
||||
# inotify-wait on it to be corrected which we never do.
|
||||
systemd-run --unit=test20-mainpidsh3.service \
|
||||
systemd-run --unit=test-mainpidsh3.service \
|
||||
-p StandardOutput=tty \
|
||||
-p StandardError=tty \
|
||||
-p Type=forking \
|
||||
@ -136,15 +136,15 @@ systemd-run --unit=test20-mainpidsh3.service \
|
||||
-p PIDFile=/run/mainpidsh3/pid \
|
||||
-p DynamicUser=1 \
|
||||
-p TimeoutStartSec=2s \
|
||||
/dev/shm/test20-mainpid3.sh \
|
||||
/dev/shm/test-mainpid3.sh \
|
||||
&& { echo 'unexpected success'; exit 1; }
|
||||
|
||||
# Test that this failed due to timeout, and not some other error
|
||||
test "$(systemctl show -P Result test20-mainpidsh3.service)" = timeout
|
||||
test "$(systemctl show -P Result test-mainpidsh3.service)" = timeout
|
||||
|
||||
# Test that scope units work
|
||||
systemd-run --scope --unit test20-true.scope /bin/true
|
||||
test "$(systemctl show -P Result test20-true.scope)" = success
|
||||
systemd-run --scope --unit test-true.scope /bin/true
|
||||
test "$(systemctl show -P Result test-true.scope)" = success
|
||||
|
||||
# Test that user scope units work as well
|
||||
|
||||
@ -156,8 +156,8 @@ runas() {
|
||||
}
|
||||
|
||||
systemctl start user@4711.service
|
||||
runas testuser systemd-run --scope --user --unit test20-true.scope /bin/true
|
||||
test "$(systemctl show -P Result test20-true.scope)" = success
|
||||
runas testuser systemd-run --scope --user --unit test-true.scope /bin/true
|
||||
test "$(systemctl show -P Result test-true.scope)" = success
|
||||
|
||||
systemd-analyze log-level info
|
||||
|
||||
|
@ -5,13 +5,13 @@
|
||||
set -eux
|
||||
set -o pipefail
|
||||
|
||||
cat >/etc/systemd/system/testservice.service <<EOF
|
||||
cat >/etc/systemd/system/test-service.service <<EOF
|
||||
[Service]
|
||||
ConfigurationDirectory=testservice
|
||||
RuntimeDirectory=testservice
|
||||
StateDirectory=testservice
|
||||
CacheDirectory=testservice
|
||||
LogsDirectory=testservice
|
||||
ConfigurationDirectory=test-service
|
||||
RuntimeDirectory=test-service
|
||||
StateDirectory=test-service
|
||||
CacheDirectory=test-service
|
||||
LogsDirectory=test-service
|
||||
RuntimeDirectoryPreserve=yes
|
||||
ExecStart=/bin/sleep infinity
|
||||
Type=exec
|
||||
@ -19,70 +19,70 @@ EOF
|
||||
|
||||
systemctl daemon-reload
|
||||
|
||||
test ! -e /etc/testservice
|
||||
test ! -e /run/testservice
|
||||
test ! -e /var/lib/testservice
|
||||
test ! -e /var/cache/testservice
|
||||
test ! -e /var/log/testservice
|
||||
test ! -e /etc/test-service
|
||||
test ! -e /run/test-service
|
||||
test ! -e /var/lib/test-service
|
||||
test ! -e /var/cache/test-service
|
||||
test ! -e /var/log/test-service
|
||||
|
||||
systemctl start testservice
|
||||
systemctl start test-service
|
||||
|
||||
test -d /etc/testservice
|
||||
test -d /run/testservice
|
||||
test -d /var/lib/testservice
|
||||
test -d /var/cache/testservice
|
||||
test -d /var/log/testservice
|
||||
test -d /etc/test-service
|
||||
test -d /run/test-service
|
||||
test -d /var/lib/test-service
|
||||
test -d /var/cache/test-service
|
||||
test -d /var/log/test-service
|
||||
|
||||
systemctl clean testservice && { echo 'unexpected success'; exit 1; }
|
||||
systemctl clean test-service && { echo 'unexpected success'; exit 1; }
|
||||
|
||||
systemctl stop testservice
|
||||
systemctl stop test-service
|
||||
|
||||
test -d /etc/testservice
|
||||
test -d /run/testservice
|
||||
test -d /var/lib/testservice
|
||||
test -d /var/cache/testservice
|
||||
test -d /var/log/testservice
|
||||
test -d /etc/test-service
|
||||
test -d /run/test-service
|
||||
test -d /var/lib/test-service
|
||||
test -d /var/cache/test-service
|
||||
test -d /var/log/test-service
|
||||
|
||||
systemctl clean testservice --what=configuration
|
||||
systemctl clean test-service --what=configuration
|
||||
|
||||
test ! -e /etc/testservice
|
||||
test -d /run/testservice
|
||||
test -d /var/lib/testservice
|
||||
test -d /var/cache/testservice
|
||||
test -d /var/log/testservice
|
||||
test ! -e /etc/test-service
|
||||
test -d /run/test-service
|
||||
test -d /var/lib/test-service
|
||||
test -d /var/cache/test-service
|
||||
test -d /var/log/test-service
|
||||
|
||||
systemctl clean testservice
|
||||
systemctl clean test-service
|
||||
|
||||
test ! -e /etc/testservice
|
||||
test ! -e /run/testservice
|
||||
test -d /var/lib/testservice
|
||||
test ! -e /var/cache/testservice
|
||||
test -d /var/log/testservice
|
||||
test ! -e /etc/test-service
|
||||
test ! -e /run/test-service
|
||||
test -d /var/lib/test-service
|
||||
test ! -e /var/cache/test-service
|
||||
test -d /var/log/test-service
|
||||
|
||||
systemctl clean testservice --what=logs
|
||||
systemctl clean test-service --what=logs
|
||||
|
||||
test ! -e /etc/testservice
|
||||
test ! -e /run/testservice
|
||||
test -d /var/lib/testservice
|
||||
test ! -e /var/cache/testservice
|
||||
test ! -e /var/log/testservice
|
||||
test ! -e /etc/test-service
|
||||
test ! -e /run/test-service
|
||||
test -d /var/lib/test-service
|
||||
test ! -e /var/cache/test-service
|
||||
test ! -e /var/log/test-service
|
||||
|
||||
systemctl clean testservice --what=all
|
||||
systemctl clean test-service --what=all
|
||||
|
||||
test ! -e /etc/testservice
|
||||
test ! -e /run/testservice
|
||||
test ! -e /var/lib/testservice
|
||||
test ! -e /var/cache/testservice
|
||||
test ! -e /var/log/testservice
|
||||
test ! -e /etc/test-service
|
||||
test ! -e /run/test-service
|
||||
test ! -e /var/lib/test-service
|
||||
test ! -e /var/cache/test-service
|
||||
test ! -e /var/log/test-service
|
||||
|
||||
cat >/etc/systemd/system/testservice.service <<EOF
|
||||
cat >/etc/systemd/system/test-service.service <<EOF
|
||||
[Service]
|
||||
DynamicUser=yes
|
||||
ConfigurationDirectory=testservice
|
||||
RuntimeDirectory=testservice
|
||||
StateDirectory=testservice
|
||||
CacheDirectory=testservice
|
||||
LogsDirectory=testservice
|
||||
ConfigurationDirectory=test-service
|
||||
RuntimeDirectory=test-service
|
||||
StateDirectory=test-service
|
||||
CacheDirectory=test-service
|
||||
LogsDirectory=test-service
|
||||
RuntimeDirectoryPreserve=yes
|
||||
ExecStart=/bin/sleep infinity
|
||||
Type=exec
|
||||
@ -90,85 +90,85 @@ EOF
|
||||
|
||||
systemctl daemon-reload
|
||||
|
||||
test ! -e /etc/testservice
|
||||
test ! -e /run/testservice
|
||||
test ! -e /var/lib/testservice
|
||||
test ! -e /var/cache/testservice
|
||||
test ! -e /var/log/testservice
|
||||
test ! -e /etc/test-service
|
||||
test ! -e /run/test-service
|
||||
test ! -e /var/lib/test-service
|
||||
test ! -e /var/cache/test-service
|
||||
test ! -e /var/log/test-service
|
||||
|
||||
systemctl restart testservice
|
||||
systemctl restart test-service
|
||||
|
||||
test -d /etc/testservice
|
||||
test -d /run/private/testservice
|
||||
test -d /var/lib/private/testservice
|
||||
test -d /var/cache/private/testservice
|
||||
test -d /var/log/private/testservice
|
||||
test -L /run/testservice
|
||||
test -L /var/lib/testservice
|
||||
test -L /var/cache/testservice
|
||||
test -L /var/log/testservice
|
||||
test -d /etc/test-service
|
||||
test -d /run/private/test-service
|
||||
test -d /var/lib/private/test-service
|
||||
test -d /var/cache/private/test-service
|
||||
test -d /var/log/private/test-service
|
||||
test -L /run/test-service
|
||||
test -L /var/lib/test-service
|
||||
test -L /var/cache/test-service
|
||||
test -L /var/log/test-service
|
||||
|
||||
systemctl clean testservice && { echo 'unexpected success'; exit 1; }
|
||||
systemctl clean test-service && { echo 'unexpected success'; exit 1; }
|
||||
|
||||
systemctl stop testservice
|
||||
systemctl stop test-service
|
||||
|
||||
test -d /etc/testservice
|
||||
test -d /run/private/testservice
|
||||
test -d /var/lib/private/testservice
|
||||
test -d /var/cache/private/testservice
|
||||
test -d /var/log/private/testservice
|
||||
test -L /run/testservice
|
||||
test -L /var/lib/testservice
|
||||
test -L /var/cache/testservice
|
||||
test -L /var/log/testservice
|
||||
test -d /etc/test-service
|
||||
test -d /run/private/test-service
|
||||
test -d /var/lib/private/test-service
|
||||
test -d /var/cache/private/test-service
|
||||
test -d /var/log/private/test-service
|
||||
test -L /run/test-service
|
||||
test -L /var/lib/test-service
|
||||
test -L /var/cache/test-service
|
||||
test -L /var/log/test-service
|
||||
|
||||
systemctl clean testservice --what=configuration
|
||||
systemctl clean test-service --what=configuration
|
||||
|
||||
test ! -d /etc/testservice
|
||||
test -d /run/private/testservice
|
||||
test -d /var/lib/private/testservice
|
||||
test -d /var/cache/private/testservice
|
||||
test -d /var/log/private/testservice
|
||||
test -L /run/testservice
|
||||
test -L /var/lib/testservice
|
||||
test -L /var/cache/testservice
|
||||
test -L /var/log/testservice
|
||||
test ! -d /etc/test-service
|
||||
test -d /run/private/test-service
|
||||
test -d /var/lib/private/test-service
|
||||
test -d /var/cache/private/test-service
|
||||
test -d /var/log/private/test-service
|
||||
test -L /run/test-service
|
||||
test -L /var/lib/test-service
|
||||
test -L /var/cache/test-service
|
||||
test -L /var/log/test-service
|
||||
|
||||
systemctl clean testservice
|
||||
systemctl clean test-service
|
||||
|
||||
test ! -d /etc/testservice
|
||||
test ! -d /run/private/testservice
|
||||
test -d /var/lib/private/testservice
|
||||
test ! -d /var/cache/private/testservice
|
||||
test -d /var/log/private/testservice
|
||||
test ! -L /run/testservice
|
||||
test -L /var/lib/testservice
|
||||
test ! -L /var/cache/testservice
|
||||
test -L /var/log/testservice
|
||||
test ! -d /etc/test-service
|
||||
test ! -d /run/private/test-service
|
||||
test -d /var/lib/private/test-service
|
||||
test ! -d /var/cache/private/test-service
|
||||
test -d /var/log/private/test-service
|
||||
test ! -L /run/test-service
|
||||
test -L /var/lib/test-service
|
||||
test ! -L /var/cache/test-service
|
||||
test -L /var/log/test-service
|
||||
|
||||
systemctl clean testservice --what=logs
|
||||
systemctl clean test-service --what=logs
|
||||
|
||||
test ! -d /etc/testservice
|
||||
test ! -d /run/private/testservice
|
||||
test -d /var/lib/private/testservice
|
||||
test ! -d /var/cache/private/testservice
|
||||
test ! -d /var/log/private/testservice
|
||||
test ! -L /run/testservice
|
||||
test -L /var/lib/testservice
|
||||
test ! -L /var/cache/testservice
|
||||
test ! -L /var/log/testservice
|
||||
test ! -d /etc/test-service
|
||||
test ! -d /run/private/test-service
|
||||
test -d /var/lib/private/test-service
|
||||
test ! -d /var/cache/private/test-service
|
||||
test ! -d /var/log/private/test-service
|
||||
test ! -L /run/test-service
|
||||
test -L /var/lib/test-service
|
||||
test ! -L /var/cache/test-service
|
||||
test ! -L /var/log/test-service
|
||||
|
||||
systemctl clean testservice --what=all
|
||||
systemctl clean test-service --what=all
|
||||
|
||||
test ! -d /etc/testservice
|
||||
test ! -d /run/private/testservice
|
||||
test ! -d /var/lib/private/testservice
|
||||
test ! -d /var/cache/private/testservice
|
||||
test ! -d /var/log/private/testservice
|
||||
test ! -L /run/testservice
|
||||
test ! -L /var/lib/testservice
|
||||
test ! -L /var/cache/testservice
|
||||
test ! -L /var/log/testservice
|
||||
test ! -d /etc/test-service
|
||||
test ! -d /run/private/test-service
|
||||
test ! -d /var/lib/private/test-service
|
||||
test ! -d /var/cache/private/test-service
|
||||
test ! -d /var/log/private/test-service
|
||||
test ! -L /run/test-service
|
||||
test ! -L /var/lib/test-service
|
||||
test ! -L /var/cache/test-service
|
||||
test ! -L /var/log/test-service
|
||||
|
||||
cat >/etc/systemd/system/tmp-hoge.mount <<EOF
|
||||
[Mount]
|
||||
@ -245,75 +245,75 @@ test ! -d /var/lib/hoge
|
||||
test ! -d /var/cache/hoge
|
||||
test ! -d /var/log/hoge
|
||||
|
||||
cat >/etc/systemd/system/testservice.socket <<EOF
|
||||
cat >/etc/systemd/system/test-service.socket <<EOF
|
||||
[Socket]
|
||||
ListenSequentialPacket=/run/testservice.socket
|
||||
ListenSequentialPacket=/run/test-service.socket
|
||||
RemoveOnStop=yes
|
||||
ExecStartPre=true
|
||||
ConfigurationDirectory=testsocket
|
||||
RuntimeDirectory=testsocket
|
||||
StateDirectory=testsocket
|
||||
CacheDirectory=testsocket
|
||||
LogsDirectory=testsocket
|
||||
ConfigurationDirectory=test-socket
|
||||
RuntimeDirectory=test-socket
|
||||
StateDirectory=test-socket
|
||||
CacheDirectory=test-socket
|
||||
LogsDirectory=test-socket
|
||||
EOF
|
||||
|
||||
systemctl daemon-reload
|
||||
|
||||
test ! -e /etc/testsocket
|
||||
test ! -e /run/testsocket
|
||||
test ! -e /var/lib/testsocket
|
||||
test ! -e /var/cache/testsocket
|
||||
test ! -e /var/log/testsocket
|
||||
test ! -e /etc/test-socket
|
||||
test ! -e /run/test-socket
|
||||
test ! -e /var/lib/test-socket
|
||||
test ! -e /var/cache/test-socket
|
||||
test ! -e /var/log/test-socket
|
||||
|
||||
systemctl start testservice.socket
|
||||
systemctl start test-service.socket
|
||||
|
||||
test -d /etc/testsocket
|
||||
test -d /run/testsocket
|
||||
test -d /var/lib/testsocket
|
||||
test -d /var/cache/testsocket
|
||||
test -d /var/log/testsocket
|
||||
test -d /etc/test-socket
|
||||
test -d /run/test-socket
|
||||
test -d /var/lib/test-socket
|
||||
test -d /var/cache/test-socket
|
||||
test -d /var/log/test-socket
|
||||
|
||||
systemctl clean testservice.socket && { echo 'unexpected success'; exit 1; }
|
||||
systemctl clean test-service.socket && { echo 'unexpected success'; exit 1; }
|
||||
|
||||
systemctl stop testservice.socket
|
||||
systemctl stop test-service.socket
|
||||
|
||||
test -d /etc/testsocket
|
||||
test ! -d /run/testsocket
|
||||
test -d /var/lib/testsocket
|
||||
test -d /var/cache/testsocket
|
||||
test -d /var/log/testsocket
|
||||
test -d /etc/test-socket
|
||||
test ! -d /run/test-socket
|
||||
test -d /var/lib/test-socket
|
||||
test -d /var/cache/test-socket
|
||||
test -d /var/log/test-socket
|
||||
|
||||
systemctl clean testservice.socket --what=configuration
|
||||
systemctl clean test-service.socket --what=configuration
|
||||
|
||||
test ! -e /etc/testsocket
|
||||
test ! -d /run/testsocket
|
||||
test -d /var/lib/testsocket
|
||||
test -d /var/cache/testsocket
|
||||
test -d /var/log/testsocket
|
||||
test ! -e /etc/test-socket
|
||||
test ! -d /run/test-socket
|
||||
test -d /var/lib/test-socket
|
||||
test -d /var/cache/test-socket
|
||||
test -d /var/log/test-socket
|
||||
|
||||
systemctl clean testservice.socket
|
||||
systemctl clean test-service.socket
|
||||
|
||||
test ! -e /etc/testsocket
|
||||
test ! -e /run/testsocket
|
||||
test -d /var/lib/testsocket
|
||||
test ! -e /var/cache/testsocket
|
||||
test -d /var/log/testsocket
|
||||
test ! -e /etc/test-socket
|
||||
test ! -e /run/test-socket
|
||||
test -d /var/lib/test-socket
|
||||
test ! -e /var/cache/test-socket
|
||||
test -d /var/log/test-socket
|
||||
|
||||
systemctl clean testservice.socket --what=logs
|
||||
systemctl clean test-service.socket --what=logs
|
||||
|
||||
test ! -e /etc/testsocket
|
||||
test ! -e /run/testsocket
|
||||
test -d /var/lib/testsocket
|
||||
test ! -e /var/cache/testsocket
|
||||
test ! -e /var/log/testsocket
|
||||
test ! -e /etc/test-socket
|
||||
test ! -e /run/test-socket
|
||||
test -d /var/lib/test-socket
|
||||
test ! -e /var/cache/test-socket
|
||||
test ! -e /var/log/test-socket
|
||||
|
||||
systemctl clean testservice.socket --what=all
|
||||
systemctl clean test-service.socket --what=all
|
||||
|
||||
test ! -e /etc/testsocket
|
||||
test ! -e /run/testsocket
|
||||
test ! -e /var/lib/testsocket
|
||||
test ! -e /var/cache/testsocket
|
||||
test ! -e /var/log/testsocket
|
||||
test ! -e /etc/test-socket
|
||||
test ! -e /run/test-socket
|
||||
test ! -e /var/lib/test-socket
|
||||
test ! -e /var/cache/test-socket
|
||||
test ! -e /var/log/test-socket
|
||||
|
||||
echo OK >/testok
|
||||
|
||||
|
@ -10,6 +10,7 @@ systemd-run -p LoadCredential=passwd:/etc/passwd \
|
||||
-p LoadCredential=shadow:/etc/shadow \
|
||||
-p SetCredential=dog:wuff \
|
||||
-p DynamicUser=1 \
|
||||
--unit=test-54-unpriv.service \
|
||||
--wait \
|
||||
--pipe \
|
||||
cat '${CREDENTIALS_DIRECTORY}/passwd' '${CREDENTIALS_DIRECTORY}/shadow' '${CREDENTIALS_DIRECTORY}/dog' >/tmp/ts54-concat
|
||||
@ -77,11 +78,13 @@ fi
|
||||
# Verify that the creds are immutable
|
||||
systemd-run -p LoadCredential=passwd:/etc/passwd \
|
||||
-p DynamicUser=1 \
|
||||
--unit=test-54-immutable-touch.service \
|
||||
--wait \
|
||||
touch '${CREDENTIALS_DIRECTORY}/passwd' \
|
||||
&& { echo 'unexpected success'; exit 1; }
|
||||
systemd-run -p LoadCredential=passwd:/etc/passwd \
|
||||
-p DynamicUser=1 \
|
||||
--unit=test-54-immutable-rm.service \
|
||||
--wait \
|
||||
rm '${CREDENTIALS_DIRECTORY}/passwd' \
|
||||
&& { echo 'unexpected success'; exit 1; }
|
||||
@ -94,6 +97,7 @@ echo -n c >/tmp/ts54-creds/baz
|
||||
echo -n d >/tmp/ts54-creds/sub/qux
|
||||
systemd-run -p LoadCredential=cred:/tmp/ts54-creds \
|
||||
-p DynamicUser=1 \
|
||||
--unit=test-54-dir.service \
|
||||
--wait \
|
||||
--pipe \
|
||||
cat '${CREDENTIALS_DIRECTORY}/cred_foo' \
|
||||
|
Loading…
x
Reference in New Issue
Block a user