X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=test%2FT590-libconfig.sh;h=1b308693c527cf026f1fa5005e93f20f54588813;hp=8ca688334079662507e697246c3616de730e8a49;hb=33e58021958f8069ad46d7bd05cf586676fb6ae7;hpb=92e59568fa4eec466db78af6c21c39ca5826b0d7 diff --git a/test/T590-libconfig.sh b/test/T590-libconfig.sh index 8ca68833..1b308693 100755 --- a/test/T590-libconfig.sh +++ b/test/T590-libconfig.sh @@ -6,20 +6,9 @@ test_description="library config API" add_email_corpus cat < c_head -#include #include #include -#include - -void run(int line, notmuch_status_t ret) -{ - if (ret) { - fprintf (stderr, "line %d: %s\n", line, ret); - exit (1); - } -} - -#define RUN(v) run(__LINE__, v); +#include int main (int argc, char** argv) { @@ -27,23 +16,23 @@ int main (int argc, char** argv) char *val; notmuch_status_t stat; - RUN(notmuch_database_open (argv[1], NOTMUCH_DATABASE_MODE_READ_WRITE, &db)); + EXPECT0(notmuch_database_open (argv[1], NOTMUCH_DATABASE_MODE_READ_WRITE, &db)); EOF cat < c_tail - RUN(notmuch_database_destroy(db)); + EXPECT0(notmuch_database_destroy(db)); } EOF test_begin_subtest "notmuch_database_{set,get}_config" cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} { - RUN(notmuch_database_set_config (db, "testkey1", "testvalue1")); - RUN(notmuch_database_set_config (db, "testkey2", "testvalue2")); - RUN(notmuch_database_get_config (db, "testkey1", &val)); + EXPECT0(notmuch_database_set_config (db, "testkey1", "testvalue1")); + EXPECT0(notmuch_database_set_config (db, "testkey2", "testvalue2")); + EXPECT0(notmuch_database_get_config (db, "testkey1", &val)); printf("testkey1 = %s\n", val); - RUN(notmuch_database_get_config (db, "testkey2", &val)); + EXPECT0(notmuch_database_get_config (db, "testkey2", &val)); printf("testkey2 = %s\n", val); } EOF @@ -60,7 +49,7 @@ test_begin_subtest "notmuch_database_get_config_list: empty list" cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} { notmuch_config_list_t *list; - RUN(notmuch_database_get_config_list (db, "nonexistent", &list)); + EXPECT0(notmuch_database_get_config_list (db, "nonexistent", &list)); printf("valid = %d\n", notmuch_config_list_valid (list)); notmuch_config_list_destroy (list); } @@ -77,9 +66,9 @@ test_begin_subtest "notmuch_database_get_config_list: all pairs" cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} { notmuch_config_list_t *list; - RUN(notmuch_database_set_config (db, "zzzafter", "afterval")); - RUN(notmuch_database_set_config (db, "aaabefore", "beforeval")); - RUN(notmuch_database_get_config_list (db, "", &list)); + EXPECT0(notmuch_database_set_config (db, "zzzafter", "afterval")); + EXPECT0(notmuch_database_set_config (db, "aaabefore", "beforeval")); + EXPECT0(notmuch_database_get_config_list (db, "", &list)); for (; notmuch_config_list_valid (list); notmuch_config_list_move_to_next (list)) { printf("%s %s\n", notmuch_config_list_key (list), notmuch_config_list_value(list)); } @@ -100,7 +89,7 @@ test_begin_subtest "notmuch_database_get_config_list: one prefix" cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} { notmuch_config_list_t *list; - RUN(notmuch_database_get_config_list (db, "testkey", &list)); + EXPECT0(notmuch_database_get_config_list (db, "testkey", &list)); for (; notmuch_config_list_valid (list); notmuch_config_list_move_to_next (list)) { printf("%s %s\n", notmuch_config_list_key (list), notmuch_config_list_value(list)); } @@ -115,4 +104,32 @@ testkey2 testvalue2 EOF test_expect_equal_file EXPECTED OUTPUT +test_begin_subtest "dump config" +cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} +{ + EXPECT0(notmuch_database_set_config (db, "key with spaces", "value, with, spaces!")); +} +EOF +notmuch dump --include=config >OUTPUT +cat <<'EOF' >EXPECTED +#notmuch-dump batch-tag:3 config +#@ aaabefore beforeval +#@ key%20with%20spaces value,%20with,%20spaces%21 +#@ testkey1 testvalue1 +#@ testkey2 testvalue2 +#@ zzzafter afterval +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "restore config" +notmuch dump --include=config >EXPECTED +cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} +{ + EXPECT0(notmuch_database_set_config (db, "testkey1", "mutatedvalue")); +} +EOF +notmuch restore --include=config OUTPUT +test_expect_equal_file EXPECTED OUTPUT + test_done