From: Lennart Poettering Date: Wed, 8 Feb 2023 10:29:49 +0000 (+0100) Subject: test: add test for journals without RTC X-Git-Tag: v254-rc1~1129^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4601c7aa8ff626f52de3f69b27602c6978bd84db;p=thirdparty%2Fsystemd.git test: add test for journals without RTC This adds a test for checking we can safely order boot IDs via the timestamp of their most recent known entry. It takes a set of journal files (supplied by a user) and that are partially corrupted, and ensures we get a clear, defined order of boot IDs out of it. --- diff --git a/test/TEST-04-JOURNAL/test.sh b/test/TEST-04-JOURNAL/test.sh index 0a3bfb545c1..507dace5149 100755 --- a/test/TEST-04-JOURNAL/test.sh +++ b/test/TEST-04-JOURNAL/test.sh @@ -7,4 +7,13 @@ TEST_DESCRIPTION="Journal-related tests" # shellcheck source=test/test-functions . "${TEST_BASE_DIR:?}/test-functions" +test_append_files() { + local workspace="${1:?}" + + mkdir -p "$workspace/test-journals/" + cp -av "${TEST_BASE_DIR:?}/test-journals/"* "$workspace/test-journals/" + + inst_binary unzstd +} + do_test "$@" diff --git a/test/test-journals/1/system.journal.zst b/test/test-journals/1/system.journal.zst new file mode 100644 index 00000000000..35636c29fb0 Binary files /dev/null and b/test/test-journals/1/system.journal.zst differ diff --git a/test/test-journals/1/system@0005ebbfd42fc981-39a8842ec948769a.journal~.zst b/test/test-journals/1/system@0005ebbfd42fc981-39a8842ec948769a.journal~.zst new file mode 100644 index 00000000000..69be13e596d Binary files /dev/null and b/test/test-journals/1/system@0005ebbfd42fc981-39a8842ec948769a.journal~.zst differ diff --git a/test/test-journals/1/system@0005ebbfd4346b9f-43185b46162d9fa5.journal~.zst b/test/test-journals/1/system@0005ebbfd4346b9f-43185b46162d9fa5.journal~.zst new file mode 100644 index 00000000000..961b930627d Binary files /dev/null and b/test/test-journals/1/system@0005ebbfd4346b9f-43185b46162d9fa5.journal~.zst differ diff --git a/test/test-journals/1/system@0005ebbfd4385848-2e5dff5354ab9bcf.journal~.zst b/test/test-journals/1/system@0005ebbfd4385848-2e5dff5354ab9bcf.journal~.zst new file mode 100644 index 00000000000..ff692c3d2e2 Binary files /dev/null and b/test/test-journals/1/system@0005ebbfd4385848-2e5dff5354ab9bcf.journal~.zst differ diff --git a/test/test-journals/1/user-1000.journal.zst b/test/test-journals/1/user-1000.journal.zst new file mode 100644 index 00000000000..3b462e5223f Binary files /dev/null and b/test/test-journals/1/user-1000.journal.zst differ diff --git a/test/test-journals/1/user-1000@0005ebbfd660bcbe-dbef2eee11f4b575.journal~.zst b/test/test-journals/1/user-1000@0005ebbfd660bcbe-dbef2eee11f4b575.journal~.zst new file mode 100644 index 00000000000..8e856126c6f Binary files /dev/null and b/test/test-journals/1/user-1000@0005ebbfd660bcbe-dbef2eee11f4b575.journal~.zst differ diff --git a/test/test-journals/1/user-1000@0005ebbfe89faec4-a5e890e7b00bedd1.journal~.zst b/test/test-journals/1/user-1000@0005ebbfe89faec4-a5e890e7b00bedd1.journal~.zst new file mode 100644 index 00000000000..1318bd6007d Binary files /dev/null and b/test/test-journals/1/user-1000@0005ebbfe89faec4-a5e890e7b00bedd1.journal~.zst differ diff --git a/test/units/testsuite-04.sh b/test/units/testsuite-04.sh index 3bf7577a0e9..3f3d8bc9c89 100755 --- a/test/units/testsuite-04.sh +++ b/test/units/testsuite-04.sh @@ -275,4 +275,19 @@ journalctl --sync SEQNUM2=$(journalctl -o export -n 1 | grep -Ea "^__SEQNUM=" | cut -d= -f2) test "$SEQNUM2" -gt "$SEQNUM1" +JTMP="/var/tmp/jtmp-$RANDOM" +mkdir "$JTMP" + +( cd /test-journals/1 && for f in *.zst ; do unzstd < "$f" > "$JTMP/${f%.zst}" ; done ) + +journalctl --directory="$JTMP" --list-boots --output=json > /tmp/lb1 + +diff -u /tmp/lb1 - <<'EOF' +[{"index":-3,"boot_id":"5ea5fc4f82a14186b5332a788ef9435e","first_entry":1666569600994371,"last_entry":1666584266223608},{"index":-2,"boot_id":"bea6864f21ad4c9594c04a99d89948b0","first_entry":1666584266731785,"last_entry":1666584347230411},{"index":-1,"boot_id":"4c708e1fd0744336be16f3931aa861fb","first_entry":1666584348378271,"last_entry":1666584354649355},{"index":0,"boot_id":"35e8501129134edd9df5267c49f744a4","first_entry":1666584356661527,"last_entry":1666584438086856}] +EOF + +rm -rf "$JTMP" + +rm /tmp/lb1 + touch /testok