--- /dev/null
+Return-Path: <bgamari.foss@gmail.com>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+ by olra.theworths.org (Postfix) with ESMTP id 8E602429E26\r
+ for <notmuch@notmuchmail.org>; Wed, 30 Oct 2013 21:10:26 -0700 (PDT)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: -0.799\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=-0.799 tagged_above=-999 required=5\r
+ tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,\r
+ FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled\r
+Received: from olra.theworths.org ([127.0.0.1])\r
+ by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
+ with ESMTP id REU7d-pezZGj for <notmuch@notmuchmail.org>;\r
+ Wed, 30 Oct 2013 21:10:21 -0700 (PDT)\r
+Received: from mail-qe0-f51.google.com (mail-qe0-f51.google.com\r
+ [209.85.128.51]) (using TLSv1 with cipher RC4-SHA (128/128 bits))\r
+ (No client certificate requested)\r
+ by olra.theworths.org (Postfix) with ESMTPS id 242A4431E84\r
+ for <notmuch@notmuchmail.org>; Wed, 30 Oct 2013 21:10:15 -0700 (PDT)\r
+Received: by mail-qe0-f51.google.com with SMTP id q19so1418037qeb.24\r
+ for <notmuch@notmuchmail.org>; Wed, 30 Oct 2013 21:10:14 -0700 (PDT)\r
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;\r
+ h=from:to:cc:subject:date:message-id:in-reply-to:references;\r
+ bh=XaoGbO4JtkbsfBzycTgAlL96lzXJRjF8DQkR0xLhrkw=;\r
+ b=lWRPtNd3T4xlke/p7bPEtCdOfT7u+bLqIEpcLBB86ceggl1cG5TmPpNS4Nby13entI\r
+ FyOsI/fs2PQxhDKTsjf8GcyW/+3784Ouab+Pd0VyKjUuDISZbuFfGGC7Y+ZXTfmjIgXY\r
+ quyxN4Uzg2TSGxAPU7wTR5a9x5VgHgXc3z4th2mdsdrHSieLY2SAzl0HOQO2n1ZvcFp/\r
+ J+5Xl+c+FArvpdk/vDBmN+1q2y8sRwB9Xh1amVcOX20hp9cjDBOrcHqYnnYaXhbBcVQe\r
+ /+zqMJooSXcseHWYTsV72x8s2VCi3/+z4uZ03t0+Hp9vVGWOez142phSRI2wqlQSOZFx\r
+ 3kQw==\r
+X-Received: by 10.49.131.39 with SMTP id oj7mr1397590qeb.40.1383192614591;\r
+ Wed, 30 Oct 2013 21:10:14 -0700 (PDT)\r
+Received: from localhost.localdomain\r
+ (pool-96-240-254-51.spfdma.east.verizon.net. [96.240.254.51])\r
+ by mx.google.com with ESMTPSA id r1sm5129336qam.4.2013.10.30.21.10.13\r
+ for <multiple recipients>\r
+ (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);\r
+ Wed, 30 Oct 2013 21:10:13 -0700 (PDT)\r
+From: Ben Gamari <bgamari.foss@gmail.com>\r
+To: notmuch@notmuchmail.org\r
+Subject: [PATCH 1/4] test: Add compact test\r
+Date: Thu, 31 Oct 2013 00:10:08 -0400\r
+Message-Id: <1383192608-31047-1-git-send-email-bgamari.foss@gmail.com>\r
+X-Mailer: git-send-email 1.8.3.2\r
+In-Reply-To: <id:m24n80qqy2.fsf@guru.guru-group.fi>\r
+References: <id:m24n80qqy2.fsf@guru.guru-group.fi>\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.13\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+ <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
+ <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
+ <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Thu, 31 Oct 2013 04:10:26 -0000\r
+\r
+Signed-off-by: Ben Gamari <bgamari.foss@gmail.com>\r
+---\r
+ test/compact | 32 ++++++++++++++++++++++++++++++++\r
+ test/notmuch-test | 1 +\r
+ 2 files changed, 33 insertions(+)\r
+ create mode 100755 test/compact\r
+\r
+diff --git a/test/compact b/test/compact\r
+new file mode 100755\r
+index 0000000..5bb5cea\r
+--- /dev/null\r
++++ b/test/compact\r
+@@ -0,0 +1,32 @@\r
++#!/usr/bin/env bash\r
++test_description='"notmuch compact"'\r
++. ./test-lib.sh\r
++\r
++add_message '[subject]=One'\r
++add_message '[subject]=Two'\r
++add_message '[subject]=Three'\r
++\r
++notmuch tag +tag1 \*\r
++notmuch tag +tag2 subject:Two\r
++notmuch tag -tag1 +tag3 subject:Three\r
++\r
++test_expect_success "Running compact" "notmuch compact"\r
++\r
++test_begin_subtest "Compact preserves database"\r
++output=$(notmuch search \* | notmuch_search_sanitize)\r
++test_expect_equal "$output" "\\r
++thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; One (inbox tag1 unread)\r
++thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Two (inbox tag1 tag2 unread)\r
++thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Three (inbox tag3 unread)"\r
++\r
++test_begin_subtest "Restoring backup"\r
++rm -Rf ${TEST_TMPDIR}/mail/xapian\r
++mv ${TEST_TMPDIR}/mail/xapian.old ${TEST_TMPDIR}/mail/xapian\r
++\r
++output=$(notmuch search \* | notmuch_search_sanitize)\r
++test_expect_equal "$output" "\\r
++thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; One (inbox tag1 unread)\r
++thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Two (inbox tag1 tag2 unread)\r
++thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Three (inbox tag3 unread)"\r
++\r
++test_done\r
+diff --git a/test/notmuch-test b/test/notmuch-test\r
+index aa28bb0..ec94baf 100755\r
+--- a/test/notmuch-test\r
++++ b/test/notmuch-test\r
+@@ -19,6 +19,7 @@ cd $(dirname "$0")\r
+ TESTS="\r
+ basic\r
+ help-test\r
++ compact\r
+ config\r
+ setup\r
+ new\r
+-- \r
+1.8.3.2\r
+\r