From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id 1150E431FC4 for ; Sun, 9 Mar 2014 14:41:43 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Amavis-Alert: BAD HEADER SECTION, Duplicate header field: "References" X-Spam-Flag: NO X-Spam-Score: -0.7 X-Spam-Level: X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5 tests=[RCVD_IN_DNSWL_LOW=-0.7] 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 1Jb125QRcO9G for ; Sun, 9 Mar 2014 14:41:37 -0700 (PDT) Received: from mail-lb0-f171.google.com (mail-lb0-f171.google.com [209.85.217.171]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by olra.theworths.org (Postfix) with ESMTPS id 882AF431FDA for ; Sun, 9 Mar 2014 14:40:58 -0700 (PDT) Received: by mail-lb0-f171.google.com with SMTP id w7so4108472lbi.16 for ; Sun, 09 Mar 2014 14:40:57 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=3p9jldyFULWbjsUVxsc73EatzXOqBPUIiWWWJyEEeoM=; b=X9gqMJzwJCg0Qw75wmjG0l8LkGoLKjNH1UeabN4Akj2dXrivJuXk8zmxHSa+t/FKkD +a0d8QOWvxsdeIrlZS+I42jweZ4nmW3C4mQ7ZP4Kgqc28ZgPDp2NwAgbUSvMsSOIl4IW 31ID8/OTqJg2NgTon6jg+MiwkPxi0cZUEfrt1vUG2FTJZmQ3hEdo0Kk0V6F3JvfpDoDu wIyMrBGhORl3n2rhbLRHHeZVI7ufDRn7kmFrgHry2DW+5PooohjScUew2J6FFaGAytfa uShZxGxgjE0T2tc+9s0AkDi4TMeFHBlgSwRhhhl/WHUEP0K0mjmMdNKYoJupuSQ0QAnI IUVA== X-Gm-Message-State: ALoCoQm/7COSb/Tir6j2PzjMYDHEUfvVIl4Y6JGfqPMCp143mvF6n9NJC+dV818mON3fSo7t4bQW X-Received: by 10.153.8.135 with SMTP id dk7mr21247255lad.18.1394401257083; Sun, 09 Mar 2014 14:40:57 -0700 (PDT) Received: from localhost (dsl-hkibrasgw2-58c36f-91.dhcp.inet.fi. [88.195.111.91]) by mx.google.com with ESMTPSA id qa7sm19401412lbb.6.2014.03.09.14.40.55 for (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Sun, 09 Mar 2014 14:40:56 -0700 (PDT) From: Jani Nikula To: notmuch@notmuchmail.org Subject: [PATCH v4 08/13] test: add database upgrade test from format version 1 to 2 Date: Sun, 9 Mar 2014 23:40:29 +0200 Message-Id: X-Mailer: git-send-email 1.9.0 In-Reply-To: References: In-Reply-To: References: 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, 09 Mar 2014 21:41:43 -0000 Test the upgrade from probabilistic to boolean folder: terms, and addition of path: terms. The test depends on the pre-built test corpus and database tarball and checksum file being in place. If it's not, the test is skipped. The mechanism to fetch the test database will be added later. At the time of writing, a working test database and checksum file is available at http://notmuchmail.org/releases/test-databases/ It has been noted that some non-GNU environments make lack sha256sum. We leave this portability issue for a followup patch. --- test/T530-upgrade.sh | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100755 test/T530-upgrade.sh diff --git a/test/T530-upgrade.sh b/test/T530-upgrade.sh new file mode 100755 index 000000000000..1d883986db83 --- /dev/null +++ b/test/T530-upgrade.sh @@ -0,0 +1,115 @@ +#!/usr/bin/env bash +test_description="database upgrade" + +. ./test-lib.sh + +dbtarball=folders-v1.tar.xz + +# XXX: Accomplish the same with test lib helpers +if [ ! -e ${TEST_DIRECTORY}/test-databases/${dbtarball} ]; then + test_subtest_missing_external_prereq_["${dbtarball}"]=t +fi + +test_expect_success \ + 'database checksum' \ + '( cd $TEST_DIRECTORY/test-databases && + sha256sum --quiet --check --status ${dbtarball}.sha256 )' + +tar xf $TEST_DIRECTORY/test-databases/${dbtarball} -C ${MAIL_DIR} --strip-components=1 + +test_begin_subtest "folder: search does not work with old database version" +output=$(notmuch search folder:foo) +test_expect_equal "$output" "" + +test_begin_subtest "path: search does not work with old database version" +output=$(notmuch search path:foo) +test_expect_equal "$output" "" + +test_begin_subtest "database upgrade from format version 1" +output=$(notmuch new) +test_expect_equal "$output" "\ +Welcome to a new version of notmuch! Your database will now be upgraded. +Your notmuch database has now been upgraded to database format version 2. +No new mail." + +test_begin_subtest "folder: no longer matches in the middle of path" +output=$(notmuch search folder:baz) +test_expect_equal "$output" "" + +test_begin_subtest "folder: search" +output=$(notmuch search --output=files folder:foo | notmuch_search_files_sanitize | sort) +# bar/baz/05:2, and new/03:2, are duplicates of foo/05:2, and +# foo/new/03:2, respectively +test_expect_equal "$output" "MAIL_DIR/bar/baz/05:2, +MAIL_DIR/foo/05:2, +MAIL_DIR/foo/06:2, +MAIL_DIR/foo/cur/07:2, +MAIL_DIR/foo/cur/08:2, +MAIL_DIR/foo/new/03:2, +MAIL_DIR/foo/new/09:2, +MAIL_DIR/foo/new/10:2, +MAIL_DIR/new/03:2," + +test_begin_subtest "top level folder: search" +output=$(notmuch search --output=files folder:'""' | notmuch_search_files_sanitize | sort) +# foo/new/03:2, is a duplicate of new/03:2, +test_expect_equal "$output" "MAIL_DIR/01:2, +MAIL_DIR/02:2, +MAIL_DIR/cur/29:2, +MAIL_DIR/cur/30:2, +MAIL_DIR/cur/31:2, +MAIL_DIR/cur/32:2, +MAIL_DIR/cur/33:2, +MAIL_DIR/cur/34:2, +MAIL_DIR/cur/35:2, +MAIL_DIR/cur/36:2, +MAIL_DIR/cur/37:2, +MAIL_DIR/cur/38:2, +MAIL_DIR/cur/39:2, +MAIL_DIR/cur/40:2, +MAIL_DIR/cur/41:2, +MAIL_DIR/cur/42:2, +MAIL_DIR/cur/43:2, +MAIL_DIR/cur/44:2, +MAIL_DIR/cur/45:2, +MAIL_DIR/cur/46:2, +MAIL_DIR/cur/47:2, +MAIL_DIR/cur/48:2, +MAIL_DIR/cur/49:2, +MAIL_DIR/cur/50:2, +MAIL_DIR/cur/52:2, +MAIL_DIR/cur/53:2, +MAIL_DIR/foo/new/03:2, +MAIL_DIR/new/03:2, +MAIL_DIR/new/04:2," + +test_begin_subtest "path: search" +output=$(notmuch search --output=files path:"bar" | notmuch_search_files_sanitize | sort) +# foo/05:2, is a duplicate of bar/baz/05:2, +test_expect_equal "$output" "MAIL_DIR/bar/17:2, +MAIL_DIR/bar/18:2," + +test_begin_subtest "top level path: search" +output=$(notmuch search --output=files path:'""' | notmuch_search_files_sanitize | sort) +test_expect_equal "$output" "MAIL_DIR/01:2, +MAIL_DIR/02:2," + +test_begin_subtest "recursive path: search" +output=$(notmuch search --output=files path:"bar/**" | notmuch_search_files_sanitize | sort) +# foo/05:2, is a duplicate of bar/baz/05:2, +test_expect_equal "$output" "MAIL_DIR/bar/17:2, +MAIL_DIR/bar/18:2, +MAIL_DIR/bar/baz/05:2, +MAIL_DIR/bar/baz/23:2, +MAIL_DIR/bar/baz/24:2, +MAIL_DIR/bar/baz/cur/25:2, +MAIL_DIR/bar/baz/cur/26:2, +MAIL_DIR/bar/baz/new/27:2, +MAIL_DIR/bar/baz/new/28:2, +MAIL_DIR/bar/cur/19:2, +MAIL_DIR/bar/cur/20:2, +MAIL_DIR/bar/new/21:2, +MAIL_DIR/bar/new/22:2, +MAIL_DIR/foo/05:2," + +test_done -- 1.9.0