test: add broken roundtrip test
authorDavid Bremner <bremner@debian.org>
Sun, 5 Aug 2012 18:13:13 +0000 (15:13 -0300)
committerDavid Bremner <bremner@debian.org>
Sun, 2 Dec 2012 23:09:01 +0000 (19:09 -0400)
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

index b05399ca4c0d70c07416a52296d6a7a8eb745324..bf312661122afaf172aab164531033baeaf50ba9 100755 (executable)
@@ -85,4 +85,24 @@ 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=10
+
+     notmuch dump| \
+        ${TEST_DIRECTORY}/hex-xcode --direction=encode| \
+        sort > EXPECTED.$test_count
+
+     notmuch tag +this_tag_is_very_unlikely_to_be_random '*'
+
+     ${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