[patch v3 6/6] test: add broken roundtrip test

david at tethera.net david at tethera.net
Sun Dec 2 05:33:24 PST 2012


From: David Bremner <bremner at debian.org>

We demonstrate the current notmuch restore parser being confused by
message-id's and tags containing non alpha numeric characters
(particularly space and parentheses are problematic because they are
not escaped by notmuch dump).

We save the files as hex escaped on disk so that terminal emulators
will not get confused if the test fails (as we mostly expect it to do).
---
 test/dump-restore |   22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/test/dump-restore b/test/dump-restore
index b05399c..adf0647 100755
--- a/test/dump-restore
+++ b/test/dump-restore
@@ -85,4 +85,26 @@ test_begin_subtest "dump --output=outfile -- from:cworth"
 notmuch dump --output=dump-outfile-dash-inbox.actual -- from:cworth
 test_expect_equal_file dump-cworth.expected dump-outfile-dash-inbox.actual
 
+test_begin_subtest 'roundtripping random message-ids and tags'
+    test_subtest_known_broken
+    ${TEST_DIRECTORY}/random-corpus --config-path=${NOTMUCH_CONFIG} \
+			--num-messages=100
+
+     notmuch dump| \
+	 ${TEST_DIRECTORY}/hex-xcode --direction=encode| \
+	 sort > EXPECTED.$test_count
+
+     # delete every second tag
+     notmuch tag $(notmuch search --output=tags '*' | \
+	 awk '{ if (NR % 2 == 0) printf " -'%s'", $1 }')  '*'
+
+     ${TEST_DIRECTORY}/hex-xcode --direction=decode < EXPECTED.$test_count | \
+	 notmuch restore 2>/dev/null
+
+     notmuch dump| \
+	 ${TEST_DIRECTORY}/hex-xcode --direction=encode| \
+	 sort > OUTPUT.$test_count
+
+test_expect_equal_file EXPECTED.$test_count OUTPUT.$test_count
+
 test_done
-- 
1.7.10.4



More information about the notmuch mailing list