summaryrefslogtreecommitdiffstats
path: root/tests/imjournal-basic.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/imjournal-basic.sh')
-rwxr-xr-xtests/imjournal-basic.sh47
1 files changed, 47 insertions, 0 deletions
diff --git a/tests/imjournal-basic.sh b/tests/imjournal-basic.sh
new file mode 100755
index 0000000..53d9d7f
--- /dev/null
+++ b/tests/imjournal-basic.sh
@@ -0,0 +1,47 @@
+#!/bin/bash
+# This test injects a message and checks if it is received by
+# imjournal. We use a special test string which we do not expect
+# to be present in the regular log stream. So we do not expect that
+# any other journal content matches our test message. We skip the
+# test in case message does not make it even to journal which may
+# sometimes happen in some environments.
+# addd 2017-10-25 by RGerhards, released under ASL 2.0
+. ${srcdir:=.}/diag.sh init
+. $srcdir/diag.sh require-journalctl
+generate_conf
+add_conf '
+module(load="../plugins/imjournal/.libs/imjournal" IgnorePreviousMessages="on"
+ RateLimit.Burst="1000000")
+
+template(name="outfmt" type="string" string="%msg%\n")
+action(type="omfile" template="outfmt" file="'$RSYSLOG_OUT_LOG'")
+'
+TESTMSG="TestBenCH-RSYSLog imjournal This is a test message - $(date +%s) - $RSYSLOG_DYNNAME"
+
+startup
+
+printf 'a quick glimpse at journal content at rsyslog startup:\n'
+journalctl -n 20 --no-pager
+printf '\n\n'
+
+printf '++++++++++++++++++++++ Printing to the journal! +++++++++++++++++++++++++\n'
+# inject message into journal and check that it is recorded
+./journal_print "$TESTMSG"
+journal_write_state=$?
+if [ $journal_write_state -ne 0 ]; then
+ printf 'SKIP: journal_print returned state %d writing message: %s\n' "$journal_write_state" "$TESTMSG"
+ printf 'skipping test, journal probably not working\n'
+ exit 77
+fi
+
+# check state later - we must not terminate the test until we have terminated rsyslog
+
+# give the journal ~5 minutes to forward the message, see
+# https://github.com/rsyslog/rsyslog/issues/2564#issuecomment-435849660
+content_check_with_count "$TESTMSG" 1 300
+
+shutdown_when_empty # shut down rsyslogd when done processing messages
+wait_shutdown
+
+check_journal_testmsg_received
+exit_test