2015-11-17 14:21:23 +03:00
#!/bin/bash
set -x
set -e
set -o pipefail
# Test stdout stream
# Skip empty lines
ID = $( journalctl --new-id128 | sed -n 2p)
>/expected
printf $'\n\n\n' | systemd-cat -t " $ID " --level-prefix false
2015-11-27 16:55:23 +03:00
journalctl --sync
2015-11-17 14:21:23 +03:00
journalctl -b -o cat -t " $ID " >/output
cmp /expected /output
ID = $( journalctl --new-id128 | sed -n 2p)
>/expected
printf $'<5>\n<6>\n<7>\n' | systemd-cat -t " $ID " --level-prefix true
2015-11-27 16:55:23 +03:00
journalctl --sync
2015-11-17 14:21:23 +03:00
journalctl -b -o cat -t " $ID " >/output
cmp /expected /output
2015-11-18 00:41:05 +03:00
# Remove trailing spaces
ID = $( journalctl --new-id128 | sed -n 2p)
printf "Trailing spaces\n" >/expected
printf $'<5>Trailing spaces \t \n' | systemd-cat -t " $ID " --level-prefix true
2015-11-27 16:55:23 +03:00
journalctl --sync
2015-11-18 00:41:05 +03:00
journalctl -b -o cat -t " $ID " >/output
cmp /expected /output
ID = $( journalctl --new-id128 | sed -n 2p)
printf "Trailing spaces\n" >/expected
printf $'Trailing spaces \t \n' | systemd-cat -t " $ID " --level-prefix false
2015-11-27 16:55:23 +03:00
journalctl --sync
2015-11-18 00:41:05 +03:00
journalctl -b -o cat -t " $ID " >/output
cmp /expected /output
# Don't remove leading spaces
ID = $( journalctl --new-id128 | sed -n 2p)
printf $' \t Leading spaces\n' >/expected
printf $'<5> \t Leading spaces\n' | systemd-cat -t " $ID " --level-prefix true
2015-11-27 16:55:23 +03:00
journalctl --sync
2015-11-18 00:41:05 +03:00
journalctl -b -o cat -t " $ID " >/output
cmp /expected /output
ID = $( journalctl --new-id128 | sed -n 2p)
printf $' \t Leading spaces\n' >/expected
printf $' \t Leading spaces\n' | systemd-cat -t " $ID " --level-prefix false
2015-11-27 16:55:23 +03:00
journalctl --sync
2015-11-18 00:41:05 +03:00
journalctl -b -o cat -t " $ID " >/output
cmp /expected /output
2017-10-27 06:10:47 +03:00
# --output-fields restricts output
ID = $( journalctl --new-id128 | sed -n 2p)
printf $'foo' | systemd-cat -t " $ID " --level-prefix false
journalctl --sync
journalctl -b -o export --output-fields= MESSAGE,FOO --output-fields= PRIORITY,MESSAGE -t " $ID " >/output
[ [ ` grep -c . /output` -eq 6 ] ]
grep -q '^__CURSOR=' /output
grep -q '^MESSAGE=foo$' /output
grep -q '^PRIORITY=6$' /output
! grep -q '^FOO=' /output
! grep -q '^SYSLOG_FACILITY=' /output
2019-03-07 04:20:06 +03:00
# `-b all` negates earlier use of -b (-b and -m are otherwise exclusive)
journalctl -b -1 -b all -m > /dev/null
# -b always behaves like -b0
journalctl -q -b-1 -b0 | head -1 > /expected
journalctl -q -b-1 -b | head -1 > /output
cmp /expected /output
# ... even when another option follows (both of these should fail due to -m)
{ journalctl -ball -b0 -m 2>& 1 || :; } | head -1 > /expected
{ journalctl -ball -b -m 2>& 1 || :; } | head -1 > /output
cmp /expected /output
2015-12-30 06:33:43 +03:00
# Don't lose streams on restart
systemctl start forever-print-hola
sleep 3
systemctl restart systemd-journald
sleep 3
systemctl stop forever-print-hola
[ [ ! -f "/i-lose-my-logs" ] ]
2016-10-20 16:18:12 +03:00
# https://github.com/systemd/systemd/issues/4408
rm -f /i-lose-my-logs
systemctl start forever-print-hola
sleep 3
systemctl kill --signal= SIGKILL systemd-journald
sleep 3
[ [ ! -f "/i-lose-my-logs" ] ]
2015-11-17 14:21:23 +03:00
touch /testok