mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-12-23 17:34:00 +03:00
c84d1c9822
Let's keep the debug logs in the journal, while logging only
testsute-*.sh stdout/stderr to the console (ba7abf7
). This should make
the test output log a bit more readable and potentially the tests itself
a bit faster by avoiding console oversaturation.
Also, it should significantly reduce the size of artifacts kept by CIs.
39 lines
1.2 KiB
Bash
Executable File
39 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
set -eux
|
|
set -o pipefail
|
|
|
|
# Let's run this test only if the "memory.oom.group" cgroupfs attribute
|
|
# exists. This test is a bit too strict, since the "memory.events"/"oom_kill"
|
|
# logic has been around since a longer time than "memory.oom.group", but it's
|
|
# an easier thing to test for, and also: let's not get confused by older
|
|
# kernels where the concept was still new.
|
|
|
|
if test -f /sys/fs/cgroup/system.slice/testsuite-32.service/memory.oom.group; then
|
|
systemd-analyze log-level debug
|
|
|
|
# Run a service that is guaranteed to be the first candidate for OOM killing
|
|
systemd-run --unit=oomtest.service \
|
|
-p Type=exec -p OOMScoreAdjust=1000 -p OOMPolicy=stop -p MemoryAccounting=yes \
|
|
sleep infinity
|
|
|
|
# Trigger an OOM killer run
|
|
echo 1 >/proc/sys/kernel/sysrq
|
|
echo f >/proc/sysrq-trigger
|
|
|
|
while : ; do
|
|
STATE="$(systemctl show -P ActiveState oomtest.service)"
|
|
[ "$STATE" = "failed" ] && break
|
|
sleep .5
|
|
done
|
|
|
|
RESULT="$(systemctl show -P Result oomtest.service)"
|
|
test "$RESULT" = "oom-kill"
|
|
|
|
systemd-analyze log-level info
|
|
fi
|
|
|
|
echo OK >/testok
|
|
|
|
exit 0
|