]> git.notmuchmail.org Git - notmuch/commitdiff
test: add sanity tests for threading
authorDavid Bremner <david@tethera.net>
Sat, 19 Sep 2015 15:45:42 +0000 (12:45 -0300)
committerDavid Bremner <david@tethera.net>
Mon, 23 Nov 2015 12:08:26 +0000 (08:08 -0400)
These tests are inspired by a problem report

      id:CAJhTkNh7_hXDLsAGyD7nwkXV4ca6ymkLtFG945USvfqK4ZJEdQ@mail.gmail.com

Of course I can't duplicate the mentioned problem, it probably depends
on specific message data.

test/T580-thread-search.sh [new file with mode: 0755]

diff --git a/test/T580-thread-search.sh b/test/T580-thread-search.sh
new file mode 100755 (executable)
index 0000000..6f7106d
--- /dev/null
@@ -0,0 +1,42 @@
+#!/usr/bin/env bash
+#
+# Copyright (c) 2015 David Bremner
+#
+
+test_description='test of searching by thread-id'
+
+. ./test-lib.sh || exit 1
+
+add_email_corpus
+
+test_begin_subtest "Every message is found in exactly one thread"
+
+count=0
+success=0
+for id in $(notmuch search --output=messages '*'); do
+    count=$((count +1))
+    matches=$(notmuch search --output=threads "$id" | wc -l)
+    if [ "$matches" = 1 ]; then
+       success=$((success + 1))
+    fi
+done
+
+test_expect_equal "$count" "$success"
+
+test_begin_subtest "roundtripping message-ids via thread-ids"
+
+count=0
+success=0
+for id in $(notmuch search --output=messages '*'); do
+    count=$((count +1))
+    thread=$(notmuch search --output=threads "$id")
+    matched=$(notmuch search --output=messages "$thread" | grep "$id")
+    if [ "$matched" = "$id" ]; then
+       success=$((success + 1))
+    fi
+done
+
+test_expect_equal "$count" "$success"
+
+
+test_done