Return-Path: X-Original-To: notmuch@notmuchmail.org Delivered-To: notmuch@notmuchmail.org Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id 77773431FC0 for ; Sun, 2 Dec 2012 05:34:05 -0800 (PST) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: 0 X-Spam-Level: X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[none] autolearn=disabled Received: from olra.theworths.org ([127.0.0.1]) by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id kstfSjSd1+XW for ; Sun, 2 Dec 2012 05:34:04 -0800 (PST) Received: from tesseract.cs.unb.ca (tesseract.cs.unb.ca [131.202.240.238]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by olra.theworths.org (Postfix) with ESMTPS id 438BB431FAF for ; Sun, 2 Dec 2012 05:33:52 -0800 (PST) Received: from fctnnbsc30w-142167090129.dhcp-dynamic.fibreop.nb.bellaliant.net ([142.167.90.129] helo=zancas.localnet) by tesseract.cs.unb.ca with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1Tf9g1-0005w5-1d; Sun, 02 Dec 2012 09:33:51 -0400 Received: from bremner by zancas.localnet with local (Exim 4.80) (envelope-from ) id 1Tf9fv-0001rk-Jl; Sun, 02 Dec 2012 09:33:39 -0400 From: david@tethera.net To: notmuch@notmuchmail.org Subject: [patch v3 6/6] test: add broken roundtrip test Date: Sun, 2 Dec 2012 09:33:24 -0400 Message-Id: <1354455204-6908-7-git-send-email-david@tethera.net> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <1354455204-6908-1-git-send-email-david@tethera.net> References: <1354455204-6908-1-git-send-email-david@tethera.net> X-Spam_bar: - Cc: David Bremner X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Dec 2012 13:34:05 -0000 From: David Bremner 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