]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: use SYSLOG_IDENTIFIER= filter instead of "journalctl -u"
authorYu Watanabe <watanabe.yu+github@gmail.com>
Sun, 26 May 2024 01:05:57 +0000 (10:05 +0900)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Sun, 26 May 2024 09:00:22 +0000 (11:00 +0200)
"journalctl -u foo.service" may not work as expected, especially entries
for _TRANSPORT=stdout, for short-living services or when the service manager
generates debugging logs. Instead, SYSLOG_IDENTIFIER= should be reliable for
stdout. Let's use it.

An example case:
```
__CURSOR=s=06278e3bf011458e973c81d370a8f7a5;i=1e4dc;b=1b0258a5c78341609bf462c72d4541c3;m=308de65;t=6194c3895a13f;x=50c7e9af5b8cfc37
__REALTIME_TIMESTAMP=1716665017803071
__MONOTONIC_TIMESTAMP=50912869
_BOOT_ID=1b0258a5c78341609bf462c72d4541c3
SYSLOG_FACILITY=3
_UID=0
_GID=0
_MACHINE_ID=d3490e076ab24968bfa19a6aab26beb3
_HOSTNAME=H
_RUNTIME_SCOPE=system
_TRANSPORT=stdout
PRIORITY=6
_PID=2668
_STREAM_ID=3f9b8855636041988d003a9c63379b8a
SYSLOG_IDENTIFIER=echo
MESSAGE=foo
```
As you can see, there is no unit identifier.

test/units/TEST-50-DISSECT.dissect.sh

index 4eeca3a2676863a87ccce40198c8a6a5f1b1ba14..563206ce7e40ad216a8b9f4df50349ca99116f9d 100755 (executable)
@@ -724,7 +724,10 @@ systemd-sysext unmerge --no-reload
 systemd-sysext merge
 journalctl --sync
 set +o pipefail
-timeout -v 30s journalctl -b -u foo.service _TRANSPORT=stdout -o cat -n all --follow | grep -m 1 -q '^foo$'
+# "journalctl -u foo.service" may not work as expected, especially entries for _TRANSPORT=stdout,
+# for short-living services or when the service manager generates debugging logs.
+# Instead, SYSLOG_IDENTIFIER= should be reliable for stdout. Let's use it.
+timeout -v 30s journalctl -b SYSLOG_IDENTIFIER=echo _TRANSPORT=stdout -o cat -n all --follow | grep -m 1 -q '^foo$'
 set -o pipefail
 systemd-sysext unmerge --no-reload
 # Grep on the Warning to find the warning helper mentioning the daemon reload.