From fb35feae979e0a124ab1c3dcb337f47c186373f3 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Sat, 27 May 2023 06:12:09 +0900 Subject: [PATCH] test: add testcase for 'journalctl --follow --cursor-file=' Also, add a FIXME comment to illustrate the issue uncovered after by 7a4ee861615101ddd2f95056cf30e69e41da86ce. --- test/units/testsuite-04.sh | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/test/units/testsuite-04.sh b/test/units/testsuite-04.sh index 6ed41f24ea5..5280cf8cb1a 100755 --- a/test/units/testsuite-04.sh +++ b/test/units/testsuite-04.sh @@ -161,6 +161,26 @@ journalctl --follow --file=/var/log/journal/*/* | head -n1 | grep . journalctl --follow --merge | head -n1 | grep . set -o pipefail +# https://github.com/systemd/systemd/issues/26746 +rm -f /tmp/issue-26746-log /tmp/issue-26746-cursor +ID=$(systemd-id128 new) + +# FIXME: +# After the commit 7a4ee861615101ddd2f95056cf30e69e41da86ce, +# journalctl --follow does not work if no matching entry stored in the journal. +# To workaround the issue, we need to add an entry before calling journalctl below. +systemd-cat -t "$ID" /bin/sh -c 'echo aaa' + +journalctl -t "$ID" --follow --cursor-file=/tmp/issue-26746-cursor | tee /tmp/issue-26746-log & +systemd-cat -t "$ID" /bin/sh -c 'echo hogehoge' +# shellcheck disable=SC2016 +timeout 10 bash -c 'while ! [[ -f /tmp/issue-26746-log && "$(cat /tmp/issue-26746-log)" =~ hogehoge ]]; do sleep .5; done' +pkill -TERM journalctl +test -f /tmp/issue-26746-cursor +CURSOR_FROM_FILE=$(cat /tmp/issue-26746-cursor) +CURSOR_FROM_JOURNAL=$(journalctl -t "$ID" --output export MESSAGE=hogehoge | sed -n -e '/__CURSOR=/ { s/__CURSOR=//; p }') +test "$CURSOR_FROM_FILE" = "$CURSOR_FROM_JOURNAL" + add_logs_filtering_override() { local unit="${1:?}" local override_name="${2:?}" -- 2.47.3