87d2c1ff6a7375f03476767e6f59454bcc5cd04bLennart Poettering This file is part of systemd.
87d2c1ff6a7375f03476767e6f59454bcc5cd04bLennart Poettering Copyright 2011 Lennart Poettering
87d2c1ff6a7375f03476767e6f59454bcc5cd04bLennart Poettering systemd is free software; you can redistribute it and/or modify it
5430f7f2bc7330f3088b894166bf3524a067e3d8Lennart Poettering under the terms of the GNU Lesser General Public License as published by
5430f7f2bc7330f3088b894166bf3524a067e3d8Lennart Poettering the Free Software Foundation; either version 2.1 of the License, or
87d2c1ff6a7375f03476767e6f59454bcc5cd04bLennart Poettering (at your option) any later version.
87d2c1ff6a7375f03476767e6f59454bcc5cd04bLennart Poettering systemd is distributed in the hope that it will be useful, but
87d2c1ff6a7375f03476767e6f59454bcc5cd04bLennart Poettering WITHOUT ANY WARRANTY; without even the implied warranty of
87d2c1ff6a7375f03476767e6f59454bcc5cd04bLennart Poettering MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
5430f7f2bc7330f3088b894166bf3524a067e3d8Lennart Poettering Lesser General Public License for more details.
5430f7f2bc7330f3088b894166bf3524a067e3d8Lennart Poettering You should have received a copy of the GNU Lesser General Public License
87d2c1ff6a7375f03476767e6f59454bcc5cd04bLennart Poettering along with systemd; If not, see <http://www.gnu.org/licenses/>.
6eb7a9a0010d035e5bdbbf70227088ce02b2120eZbigniew Jędrzejewski-Szmekstatic void test_non_empty(void) {
3c1668da6202f1ead3d4d3981b89e9da1a0e98e3Lennart Poettering static const char test[] = "TEST1=1", test2[] = "TEST2=2";
16e9f408fa9a9626059bdd6c89dc175e06b9e976Lennart Poettering assert_se(journal_file_open("test.journal", O_RDWR|O_CREAT, 0666, true, true, NULL, NULL, NULL, &f) == 0);
c2373f848dddcc1827cf715c5ef778dc8d475761Lennart Poettering assert_se(journal_file_append_entry(f, &ts, &iovec, 1, NULL, NULL, NULL) == 0);
c2373f848dddcc1827cf715c5ef778dc8d475761Lennart Poettering assert_se(journal_file_append_entry(f, &ts, &iovec, 1, NULL, NULL, NULL) == 0);
c2373f848dddcc1827cf715c5ef778dc8d475761Lennart Poettering assert_se(journal_file_append_entry(f, &ts, &iovec, 1, NULL, NULL, NULL) == 0);
f534928ad7aaeec0bec2d653b4a50e79b0fc8418Michal Schmidt assert_se(journal_file_next_entry(f, 0, DIRECTION_DOWN, &o, &p) == 1);
f534928ad7aaeec0bec2d653b4a50e79b0fc8418Michal Schmidt assert_se(journal_file_next_entry(f, p, DIRECTION_DOWN, &o, &p) == 1);
f534928ad7aaeec0bec2d653b4a50e79b0fc8418Michal Schmidt assert_se(journal_file_next_entry(f, p, DIRECTION_DOWN, &o, &p) == 1);
f534928ad7aaeec0bec2d653b4a50e79b0fc8418Michal Schmidt assert_se(journal_file_next_entry(f, p, DIRECTION_DOWN, &o, &p) == 0);
f534928ad7aaeec0bec2d653b4a50e79b0fc8418Michal Schmidt assert_se(journal_file_next_entry(f, 0, DIRECTION_DOWN, &o, &p) == 1);
787784c4c1b24a13207d18b415d60483cfbdeaa3Ronny Chevalier assert_se(journal_file_find_data_object(f, test, strlen(test), NULL, &p) == 1);
787784c4c1b24a13207d18b415d60483cfbdeaa3Ronny Chevalier assert_se(journal_file_next_entry_for_data(f, NULL, 0, p, DIRECTION_DOWN, &o, NULL) == 1);
787784c4c1b24a13207d18b415d60483cfbdeaa3Ronny Chevalier assert_se(journal_file_next_entry_for_data(f, NULL, 0, p, DIRECTION_UP, &o, NULL) == 1);
787784c4c1b24a13207d18b415d60483cfbdeaa3Ronny Chevalier assert_se(journal_file_find_data_object(f, test2, strlen(test2), NULL, &p) == 1);
787784c4c1b24a13207d18b415d60483cfbdeaa3Ronny Chevalier assert_se(journal_file_next_entry_for_data(f, NULL, 0, p, DIRECTION_UP, &o, NULL) == 1);
787784c4c1b24a13207d18b415d60483cfbdeaa3Ronny Chevalier assert_se(journal_file_next_entry_for_data(f, NULL, 0, p, DIRECTION_DOWN, &o, NULL) == 1);
787784c4c1b24a13207d18b415d60483cfbdeaa3Ronny Chevalier assert_se(journal_file_find_data_object(f, "quux", 4, NULL, &p) == 0);
787784c4c1b24a13207d18b415d60483cfbdeaa3Ronny Chevalier assert_se(journal_file_move_to_entry_by_seqnum(f, 1, DIRECTION_DOWN, &o, NULL) == 1);
787784c4c1b24a13207d18b415d60483cfbdeaa3Ronny Chevalier assert_se(journal_file_move_to_entry_by_seqnum(f, 3, DIRECTION_DOWN, &o, NULL) == 1);
787784c4c1b24a13207d18b415d60483cfbdeaa3Ronny Chevalier assert_se(journal_file_move_to_entry_by_seqnum(f, 2, DIRECTION_DOWN, &o, NULL) == 1);
787784c4c1b24a13207d18b415d60483cfbdeaa3Ronny Chevalier assert_se(journal_file_move_to_entry_by_seqnum(f, 10, DIRECTION_DOWN, &o, NULL) == 0);
8580d1f73db36e9383e674e388b4fb55828c0c66Lennart Poettering journal_directory_vacuum(".", 3000000, 0, 0, NULL, true);
c6878637502b1717a110a9a7e8bba32a8583fcdfLennart Poettering assert_se(rm_rf(t, REMOVE_ROOT|REMOVE_PHYSICAL) >= 0);
6eb7a9a0010d035e5bdbbf70227088ce02b2120eZbigniew Jędrzejewski-Szmek puts("------------------------------------------------------------");
6eb7a9a0010d035e5bdbbf70227088ce02b2120eZbigniew Jędrzejewski-Szmek char t[] = "/tmp/journal-XXXXXX";
6eb7a9a0010d035e5bdbbf70227088ce02b2120eZbigniew Jędrzejewski-Szmek assert_se(journal_file_open("test.journal", O_RDWR|O_CREAT, 0666, false, false, NULL, NULL, NULL, &f1) == 0);
6eb7a9a0010d035e5bdbbf70227088ce02b2120eZbigniew Jędrzejewski-Szmek assert_se(journal_file_open("test-compress.journal", O_RDWR|O_CREAT, 0666, true, false, NULL, NULL, NULL, &f2) == 0);
6eb7a9a0010d035e5bdbbf70227088ce02b2120eZbigniew Jędrzejewski-Szmek assert_se(journal_file_open("test-seal.journal", O_RDWR|O_CREAT, 0666, false, true, NULL, NULL, NULL, &f3) == 0);
6eb7a9a0010d035e5bdbbf70227088ce02b2120eZbigniew Jędrzejewski-Szmek assert_se(journal_file_open("test-seal-compress.journal", O_RDWR|O_CREAT, 0666, true, true, NULL, NULL, NULL, &f4) == 0);
8580d1f73db36e9383e674e388b4fb55828c0c66Lennart Poettering journal_directory_vacuum(".", 3000000, 0, 0, NULL, true);
c6878637502b1717a110a9a7e8bba32a8583fcdfLennart Poettering assert_se(rm_rf(t, REMOVE_ROOT|REMOVE_PHYSICAL) >= 0);
6eb7a9a0010d035e5bdbbf70227088ce02b2120eZbigniew Jędrzejewski-Szmekint main(int argc, char *argv[]) {
143bfdaf0b890fa7acadf02d1eafacaef1b696bdHolger Hans Peter Freyther /* journal_file_open requires a valid machine id */