]> git.cworth.org Git - notmuch/blobdiff - test/T610-message-property.sh
test: define test_private_C
[notmuch] / test / T610-message-property.sh
index 53a0be3bdf3c3cb170ad59fe9c8fc6b9dffa780e..2685f3b5f5b04c62b274c46e51475f6526587a20 100755 (executable)
@@ -6,10 +6,6 @@ test_description="message property API"
 add_email_corpus
 
 cat <<EOF > c_head
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <talloc.h>
 #include <notmuch-test.h>
 
 void print_properties (notmuch_message_t *message, const char *prefix, notmuch_bool_t exact) {
@@ -27,8 +23,12 @@ int main (int argc, char** argv)
    notmuch_message_t *message = NULL;
    const char *val;
    notmuch_status_t stat;
+   char* msg = NULL;
 
-   EXPECT0(notmuch_database_open (argv[1], NOTMUCH_DATABASE_MODE_READ_WRITE, &db));
+   EXPECT0(notmuch_database_open_with_config (argv[1],
+                                             NOTMUCH_DATABASE_MODE_READ_WRITE,
+                                             "", NULL, &db, &msg));
+   if (msg) fputs (msg, stderr);
    EXPECT0(notmuch_database_find_message(db, "4EFC743A.3060609@april.org", &message));
    if (message == NULL) {
        fprintf (stderr, "unable to find message");
@@ -65,7 +65,7 @@ cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR}
    EXPECT0(notmuch_message_get_property (message, "testkey2", &val));
    printf("testkey2 = %s\n", val);
 
-   /* remove non-existant value for key */
+   /* remove non-existent value for key */
    EXPECT0(notmuch_message_remove_property (message, "testkey2", "this value has spaces and = sign"));
    EXPECT0(notmuch_message_get_property (message, "testkey2", &val));
    printf("testkey2 = %s\n", val);
@@ -186,6 +186,18 @@ EXPECT0(notmuch_message_add_property (message, "testkey3", "testvalue3"));
 EXPECT0(notmuch_message_add_property (message, "testkey3", "alice3"));
 print_properties (message, "testkey", FALSE);
 EOF
+# expected: 4 values for testkey1, 3 values for testkey3
+# they are not guaranteed to be sorted, so sort them, leaving the first
+# line '== stdout ==' and the end ('== stderr ==' and whatever error
+# may have been printed) alone
+mv OUTPUT unsorted_OUTPUT
+awk ' NR == 1 { print; next } \
+      NR < 6  { print | "sort"; next } \
+      NR == 6 { close("sort") } \
+      NR < 9  { print | "sort"; next } \
+      NR == 9 { close("sort") } \
+      { print }' unsorted_OUTPUT > OUTPUT
+rm unsorted_OUTPUT
 cat <<'EOF' >EXPECTED
 == stdout ==
 alice