]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
journal: Run unit tests with and without compact mode enabled
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Fri, 21 Jan 2022 15:19:26 +0000 (15:19 +0000)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Fri, 7 Oct 2022 10:16:11 +0000 (12:16 +0200)
src/journal/test-journal-flush.c
src/journal/test-journal-interleaving.c
src/journal/test-journal-stream.c
src/journal/test-journal-verify.c
src/journal/test-journal.c

index 06eeb1a57814adee4e970112496340be14da23c3..c734aa02ca4e12a06142c272205d39985db6293e 100644 (file)
@@ -13,7 +13,7 @@
 #include "path-util.h"
 #include "string-util.h"
 
-int main(int argc, char *argv[]) {
+static void test_journal_flush(int argc, char *argv[]) {
         _cleanup_(mmap_cache_unrefp) MMapCache *m = NULL;
         _cleanup_free_ char *fn = NULL;
         char dn[] = "/var/tmp/test-journal-flush.XXXXXX";
@@ -70,6 +70,14 @@ int main(int argc, char *argv[]) {
 
         unlink(fn);
         assert_se(rmdir(dn) == 0);
+}
+
+int main(int argc, char *argv[]) {
+        assert_se(setenv("SYSTEMD_JOURNAL_COMPACT", "0", 1) >= 0);
+        test_journal_flush(argc, argv);
+
+        assert_se(setenv("SYSTEMD_JOURNAL_COMPACT", "1", 1) >= 0);
+        test_journal_flush(argc, argv);
 
         return 0;
 }
index eeb67be0192187a6cfb7419d462f04285f882ee4..378bf162ca92086b07fbc757df37a31f25687b1c 100644 (file)
@@ -210,7 +210,7 @@ TEST(skip) {
         test_skip_one(setup_interleaved);
 }
 
-TEST(sequence_numbers) {
+static void test_sequence_numbers_one(void) {
         _cleanup_(mmap_cache_unrefp) MMapCache *m = NULL;
         char t[] = "/var/tmp/journal-seq-XXXXXX";
         ManagedJournalFile *one, *two;
@@ -295,6 +295,14 @@ TEST(sequence_numbers) {
         }
 }
 
+TEST(sequence_numbers) {
+        assert_se(setenv("SYSTEMD_JOURNAL_COMPACT", "0", 1) >= 0);
+        test_sequence_numbers_one();
+
+        assert_se(setenv("SYSTEMD_JOURNAL_COMPACT", "1", 1) >= 0);
+        test_sequence_numbers_one();
+}
+
 static int intro(void) {
         /* managed_journal_file_open requires a valid machine id */
         if (access("/etc/machine-id", F_OK) != 0)
index f7bbd4bff977c9887d723c485ffec145f66ac2e1..ac5b7f00054f2c3bce90941e81dc5e683a757064 100644 (file)
@@ -184,11 +184,18 @@ int main(int argc, char *argv[]) {
 
         test_setup_logging(LOG_DEBUG);
 
-        /* Run this test twice. Once with old hashing and once with new hashing */
+        /* Run this test multiple times with different configurations of features. */
+
+        assert_se(setenv("SYSTEMD_JOURNAL_KEYED_HASH", "0", 1) >= 0);
+        run_test();
+
         assert_se(setenv("SYSTEMD_JOURNAL_KEYED_HASH", "1", 1) >= 0);
         run_test();
 
-        assert_se(setenv("SYSTEMD_JOURNAL_KEYED_HASH", "0", 1) >= 0);
+        assert_se(setenv("SYSTEMD_JOURNAL_COMPACT", "0", 1) >= 0);
+        run_test();
+
+        assert_se(setenv("SYSTEMD_JOURNAL_COMPACT", "1", 1) >= 0);
         run_test();
 
         return 0;
index b971c79ea953f75747b828722411e13e034871ee..e36ea8cae1184b88ddcbd06099322711a6a6714e 100644 (file)
@@ -56,7 +56,7 @@ static int raw_verify(const char *fn, const char *verification_key) {
         return r;
 }
 
-int main(int argc, char *argv[]) {
+static int run_test(int argc, char *argv[]) {
         _cleanup_(mmap_cache_unrefp) MMapCache *m = NULL;
         char t[] = "/var/tmp/journal-XXXXXX";
         unsigned n;
@@ -141,3 +141,13 @@ int main(int argc, char *argv[]) {
 
         return 0;
 }
+
+int main(int argc, char *argv[]) {
+        assert_se(setenv("SYSTEMD_JOURNAL_COMPACT", "0", 1) >= 0);
+        run_test(argc, argv);
+
+        assert_se(setenv("SYSTEMD_JOURNAL_COMPACT", "1", 1) >= 0);
+        run_test(argc, argv);
+
+        return 0;
+}
index 70b216ba67e137bb6c85017f425893f226bf3ab5..889673cae776b35ac7c6f8a9a5480fb2f2563232 100644 (file)
@@ -23,7 +23,7 @@ static void mkdtemp_chdir_chattr(char *path) {
         (void) chattr_path(path, FS_NOCOW_FL, FS_NOCOW_FL, NULL);
 }
 
-TEST(non_empty) {
+static void test_non_empty_one(void) {
         _cleanup_(mmap_cache_unrefp) MMapCache *m = NULL;
         dual_timestamp ts;
         ManagedJournalFile *f;
@@ -118,7 +118,15 @@ TEST(non_empty) {
         puts("------------------------------------------------------------");
 }
 
-TEST(empty) {
+TEST(non_empty) {
+        assert_se(setenv("SYSTEMD_JOURNAL_COMPACT", "0", 1) >= 0);
+        test_non_empty_one();
+
+        assert_se(setenv("SYSTEMD_JOURNAL_COMPACT", "1", 1) >= 0);
+        test_non_empty_one();
+}
+
+static void test_empty_one(void) {
         _cleanup_(mmap_cache_unrefp) MMapCache *m = NULL;
         ManagedJournalFile *f1, *f2, *f3, *f4;
         char t[] = "/var/tmp/journal-XXXXXX";
@@ -158,6 +166,14 @@ TEST(empty) {
         (void) managed_journal_file_close(f4);
 }
 
+TEST(empty) {
+        assert_se(setenv("SYSTEMD_JOURNAL_COMPACT", "0", 1) >= 0);
+        test_empty_one();
+
+        assert_se(setenv("SYSTEMD_JOURNAL_COMPACT", "1", 1) >= 0);
+        test_empty_one();
+}
+
 #if HAVE_COMPRESSION
 static bool check_compressed(uint64_t compress_threshold, uint64_t data_size) {
         _cleanup_(mmap_cache_unrefp) MMapCache *m = NULL;
@@ -222,7 +238,7 @@ static bool check_compressed(uint64_t compress_threshold, uint64_t data_size) {
         return is_compressed;
 }
 
-TEST(min_compress_size) {
+static void test_min_compress_size_one(void) {
         /* Note that XZ will actually fail to compress anything under 80 bytes, so you have to choose the limits
          * carefully */
 
@@ -241,6 +257,14 @@ TEST(min_compress_size) {
         assert_se(check_compressed(256, 256));
         assert_se(!check_compressed(256, 255));
 }
+
+TEST(min_compress_size) {
+        assert_se(setenv("SYSTEMD_JOURNAL_COMPACT", "0", 1) >= 0);
+        test_min_compress_size_one();
+
+        assert_se(setenv("SYSTEMD_JOURNAL_COMPACT", "1", 1) >= 0);
+        test_min_compress_size_one();
+}
 #endif
 
 static int intro(void) {