]> git.notmuchmail.org Git - notmuch/commitdiff
test: add known broken test for conflict with database parameter
authorDavid Bremner <david@tethera.net>
Thu, 28 Oct 2021 01:34:17 +0000 (22:34 -0300)
committerDavid Bremner <david@tethera.net>
Sat, 4 Dec 2021 00:49:36 +0000 (20:49 -0400)
This is arguably user error: having configuration file with bad
settings in it (and/or having a bad NOTMUCH_CONFIG environment
variable).  On the other hand returning a different path than was
actually opened is definitely a bug.

test/T590-libconfig.sh

index 891ffb4f0b19048d6f9125e5f0825c1c3ea53967..0b3e54f3e86d144637290fadceaf11bf929d61ef 100755 (executable)
@@ -952,4 +952,26 @@ db == NULL: 1
 EOF
 test_expect_equal_file EXPECTED OUTPUT
 
+test_begin_subtest "open: database parameter overrides implicit config"
+test_subtest_known_broken
+notmuch config set database.path ${MAIL_DIR}/nonexistent
+cat c_head3 - c_tail3 <<'EOF' | test_C ${MAIL_DIR}
+  const char *path = NULL;
+  notmuch_status_t st = notmuch_database_open_with_config(argv[1],
+                                                         NOTMUCH_DATABASE_MODE_READ_ONLY,
+                                                         NULL, NULL, &db, NULL);
+  printf ("status: %d\n", st);
+  path = notmuch_database_get_path (db);
+  printf ("path: %s\n", path ? path : "(null)");
+EOF
+cat <<EOF> EXPECTED
+== stdout ==
+status: 0
+path: MAIL_DIR
+db == NULL: 0
+== stderr ==
+EOF
+notmuch_dir_sanitize < OUTPUT > OUTPUT.clean
+test_expect_equal_file EXPECTED OUTPUT.clean
+
 test_done