Line data Source code
1 : /* SPDX-License-Identifier: LGPL-2.1+ */ 2 : 3 : #include "sd-journal.h" 4 : 5 : #include "chattr-util.h" 6 : #include "log.h" 7 : #include "parse-util.h" 8 : #include "rm-rf.h" 9 : #include "tests.h" 10 : #include "util.h" 11 : 12 1 : int main(int argc, char *argv[]) { 13 : sd_journal *j; 14 1 : int r, i, I = 100; 15 1 : char t[] = "/var/tmp/journal-stream-XXXXXX"; 16 : 17 1 : test_setup_logging(LOG_DEBUG); 18 : 19 1 : if (argc >= 2) { 20 0 : r = safe_atoi(argv[1], &I); 21 0 : if (r < 0) 22 0 : log_info("Could not parse loop count argument. Using default."); 23 : } 24 : 25 1 : log_info("Running %d loops", I); 26 : 27 1 : assert_se(mkdtemp(t)); 28 1 : (void) chattr_path(t, FS_NOCOW_FL, FS_NOCOW_FL, NULL); 29 : 30 101 : for (i = 0; i < I; i++) { 31 100 : r = sd_journal_open(&j, SD_JOURNAL_LOCAL_ONLY); 32 100 : assert_se(r == 0); 33 : 34 100 : sd_journal_close(j); 35 : 36 100 : r = sd_journal_open_directory(&j, t, 0); 37 100 : assert_se(r == 0); 38 : 39 100 : sd_journal_close(j); 40 : 41 100 : j = NULL; 42 100 : r = sd_journal_open_directory(&j, t, SD_JOURNAL_LOCAL_ONLY); 43 100 : assert_se(r == -EINVAL); 44 100 : assert_se(j == NULL); 45 : } 46 : 47 1 : assert_se(rm_rf(t, REMOVE_ROOT|REMOVE_PHYSICAL) >= 0); 48 : 49 1 : return 0; 50 : }