From fa8ff98ea4886442bebecd337da78e4dac3d0cb1 Mon Sep 17 00:00:00 2001 From: Frantisek Sumsal Date: Fri, 12 Jan 2024 19:13:18 +0100 Subject: [PATCH] test: cover a couple of error scenarios To make sure we behave correctly even in error paths. --- test/units/testsuite-04.journal-gatewayd.sh | 34 +++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/test/units/testsuite-04.journal-gatewayd.sh b/test/units/testsuite-04.journal-gatewayd.sh index 1b55bd39dbe..fbdb3158264 100755 --- a/test/units/testsuite-04.journal-gatewayd.sh +++ b/test/units/testsuite-04.journal-gatewayd.sh @@ -142,3 +142,37 @@ curl -Lfsk https://localhost:19531/machine | jq curl -Lfsk https://localhost:19531/fields/_TRANSPORT kill "$GATEWAYD_PID" + +# Test a couple of error scenarios +GATEWAYD_FILE="$(mktemp /tmp/test-gatewayd-XXX.journal)" + +/usr/lib/systemd/systemd-journal-remote --output="$GATEWAYD_FILE" --getter="journalctl -n5 -o export" +systemd-run --unit="test-gatewayd.service" --socket-property="ListenStream=19531" \ + /usr/lib/systemd/systemd-journal-gatewayd --file="$GATEWAYD_FILE" + +# Call an unsupported endpoint together with some garbage data - gatewayd should not send garbage in return +# See: https://github.com/systemd/systemd/issues/9858 +OUT="$(mktemp)" +for _ in {0..4}; do + curl --fail-with-body -d "plese process this🐱 $RANDOM" -L http://localhost:19531/upload | tee "$OUT" + (! grep '[^[:print:]]' "$OUT") +done +curl --fail-with-body --upload-file "$GATEWAYD_FILE" -L http://localhost:19531/upload | tee "$OUT" +(! grep '[^[:print:]]' "$OUT") +rm -rf "$OUT" + +curl -Lfs http://localhost:19531/browse | grep -qF "Journal" +# Nuke the file behind the /browse endpoint +mv /usr/share/systemd/gatewayd/browse.html /usr/share/systemd/gatewayd/browse.html.bak +(! curl --fail-with-body -L http://localhost:19531/browse) +mv /usr/share/systemd/gatewayd/browse.html.bak /usr/share/systemd/gatewayd/browse.html +curl -Lfs http://localhost:19531/browse | grep -qF "Journal" + +# Nuke the journal file +mv "$GATEWAYD_FILE" "$GATEWAYD_FILE.bak" +(! curl --fail-with-body -L http://localhost:19531/fields/_PID) +mv "$GATEWAYD_FILE.bak" "$GATEWAYD_FILE" +curl -Lfs http://localhost:19531/fields/_PID + +systemctl stop test-gatewayd.{socket,service} +rm -f "$GATEWAYD_FILE" -- 2.47.3