mirror of
https://github.com/systemd/systemd.git
synced 2024-12-25 01:34:28 +03:00
test: drop the su
wrapper and use systemctl
directly
ASan is having a hard time to get its LD_PRELOAD= shenanigans straight with all the shells flying around. Let's make it a bit easier by using one of the nifty systemctl's features instead.
This commit is contained in:
parent
f201f34477
commit
c83f126a41
@ -60,36 +60,29 @@ if ! systemctl status testsuite-55-testchill.service; then exit 24; fi
|
||||
|
||||
# Make sure we also work correctly on user units.
|
||||
|
||||
runas() {
|
||||
declare userid=$1
|
||||
shift
|
||||
# shellcheck disable=SC2016
|
||||
su "$userid" -s /bin/sh -c 'XDG_RUNTIME_DIR=/run/user/$UID exec "$@"' -- sh "$@"
|
||||
}
|
||||
|
||||
runas testuser systemctl start --user testsuite-55-testchill.service
|
||||
runas testuser systemctl start --user testsuite-55-testbloat.service
|
||||
systemctl start --machine "testuser@.host" --user testsuite-55-testchill.service
|
||||
systemctl start --machine "testuser@.host" --user testsuite-55-testbloat.service
|
||||
|
||||
# Verify systemd-oomd is monitoring the expected units
|
||||
oomctl | grep -E "/user.slice.*/testsuite-55-workload.slice"
|
||||
oomctl | grep "20.00%"
|
||||
oomctl | grep "Default Memory Pressure Duration: 2s"
|
||||
|
||||
runas testuser systemctl --user status testsuite-55-testchill.service
|
||||
systemctl --machine "testuser@.host" --user status testsuite-55-testchill.service
|
||||
|
||||
# systemd-oomd watches for elevated pressure for 2 seconds before acting.
|
||||
# It can take time to build up pressure so either wait 2 minutes or for the service to fail.
|
||||
timeout="$(date -ud "2 minutes" +%s)"
|
||||
while [[ $(date -u +%s) -le $timeout ]]; do
|
||||
if ! runas testuser systemctl --user status testsuite-55-testbloat.service; then
|
||||
if ! systemctl --machine "testuser@.host" --user status testsuite-55-testbloat.service; then
|
||||
break
|
||||
fi
|
||||
sleep 2
|
||||
done
|
||||
|
||||
# testbloat should be killed and testchill should be fine
|
||||
if runas testuser systemctl --user status testsuite-55-testbloat.service; then exit 42; fi
|
||||
if ! runas testuser systemctl --user status testsuite-55-testchill.service; then exit 24; fi
|
||||
if systemctl --machine "testuser@.host" --user status testsuite-55-testbloat.service; then exit 42; fi
|
||||
if ! systemctl --machine "testuser@.host" --user status testsuite-55-testchill.service; then exit 24; fi
|
||||
|
||||
# only run this portion of the test if we can set xattrs
|
||||
if setfattr -n user.xattr_test -v 1 /sys/fs/cgroup/; then
|
||||
|
Loading…
Reference in New Issue
Block a user