summaryrefslogtreecommitdiffstats
path: root/test/units/testsuite-04.journal-corrupt.sh
blob: 051d0ab0a8d6362b31005a5179d3c95dd544dc8a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/usr/bin/env bash
# SPDX-License-Identifier: LGPL-2.1-or-later
set -eux
set -o pipefail

journalctl --rotate --vacuum-files=1
# Nuke all archived journals, so we start with a clean slate
rm -f "/var/log/journal/$(</etc/machine-id)"/system@*.journal
rm -f "/var/log/journal/$(</etc/machine-id)"/user-*@*.journal
journalctl --header | grep path

# Make sure the user instance is active when we rotate journals
systemd-run --unit user-sleep.service --user -M testuser@ sleep infinity

for _ in {0..9}; do
    journalctl --rotate
    journalctl --sync
    SYSTEMD_LOG_LEVEL=debug journalctl -n1 -q
    (! journalctl -n0 -q |& grep corrupted)
done

systemctl stop --user -M testuser@ user-sleep.service

journalctl --sync
journalctl --rotate --vacuum-files=1
# Nuke all archived journals, so we start with a clean slate
rm -f "/var/log/journal/$(</etc/machine-id)"/system@*.journal
rm -f "/var/log/journal/$(</etc/machine-id)/"user-*@*.journal
journalctl --header | grep path

for _ in {0..9}; do
    journalctl --rotate --vacuum-files=1
    journalctl --sync
    SYSTEMD_LOG_LEVEL=debug journalctl -n1 -q
    (! journalctl -n0 -q |& grep corrupted)
done