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 6EFC0429E27 for ; Mon, 9 May 2011 22:39:54 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: -0.799 X-Spam-Level: X-Spam-Status: No, score=-0.799 tagged_above=-999 required=5 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, 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 TSNqy+7DU8Ue for ; Mon, 9 May 2011 22:39:53 -0700 (PDT) Received: from mail-fx0-f53.google.com (mail-fx0-f53.google.com [209.85.161.53]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by olra.theworths.org (Postfix) with ESMTPS id D2C93429E26 for ; Mon, 9 May 2011 22:39:52 -0700 (PDT) Received: by fxm8 with SMTP id 8so4389781fxm.26 for ; Mon, 09 May 2011 22:39:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:from:to:cc:subject:date:message-id:x-mailer; bh=6FVybfOn+2MtU+GZ735CfMSZuubHG9WRyHh2Rt9+iBM=; b=nTUlRpHzF+WEfa3H1xdqX1i6YSX4o23aOgy+IfXtwNA9l2qNw5+3b//Hk/tocV5Oxf wXSFFRe6mQQWjjFtCt6HWtEMaJy/AX+4oG/LLoyoxFJgLTZiynmn7bthFKyVwQ1PAgMP HKP0Bo1xTTNq0IZ/SYd/1MCfO1MQHMQfM+8Z8= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer; b=apf8zuyv//pIVZ9y++E4QyQUE4zF1Gc3PJh2SndOCa/Jv2w396b4rcKp1MdoG4rKpk XIMFc2y2pkoC+/JGM6PpI2w3gC9Pg8x2AqvZjL/lMSn46SvxDLevd6FjPntUpgJR1r+a bIcNlmc3lBYV6aELOw4+mZs+r+tP14IRWUktQ= Received: by 10.223.20.210 with SMTP id g18mr3140896fab.30.1305005991392; Mon, 09 May 2011 22:39:51 -0700 (PDT) Received: from localhost ([91.144.186.21]) by mx.google.com with ESMTPS id p16sm2223695fax.45.2011.05.09.22.39.50 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 09 May 2011 22:39:50 -0700 (PDT) From: Dmitry Kurochkin To: Notmuch Mail Subject: [PATCH] test: add "%s" format string to all `message' calls in emacs tests Date: Tue, 10 May 2011 09:40:07 +0400 Message-Id: <1305006007-26445-1-git-send-email-dmitry.kurochkin@gmail.com> X-Mailer: git-send-email 1.7.5.1 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: Tue, 10 May 2011 05:39:54 -0000 The patch replaces all (message (buffer-string)) calls in emacs tests with (message "%s" (buffer-string)). This works around an Emacs (23.3+1-1 on current Debian Unstable) segfault in "Ensure that emacs doesn't drop results" test. Note: the segfault does not happen on every test run. Though, it seems to be consistently reproducible if the test uses 300 messages instead of 30. Hopefully, it is the crash described in Emacs bug #8545 [1] which is already fixed. Also, the patch makes the code more correct - we want to avoid accidentally interpreting '%' as format specifiers. [1] http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8545 --- The patch applies to the release-candidate/0.6 branch. Regards, Dmitry test/emacs | 18 +++++++++--------- test/emacs-large-search-buffer | 5 +++-- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/test/emacs b/test/emacs index b376033..5b39423 100755 --- a/test/emacs +++ b/test/emacs @@ -7,38 +7,38 @@ EXPECTED=../emacs.expected-output add_email_corpus test_begin_subtest "Basic notmuch-hello view in emacs" -output=$(test_emacs '(notmuch-hello) (message (buffer-string))' 2>&1) +output=$(test_emacs '(notmuch-hello) (message "%s" (buffer-string))' 2>&1) expected=$(cat $EXPECTED/notmuch-hello) test_expect_equal "$output" "$expected" test_begin_subtest "Saved search with 0 results" -output=$(test_emacs '(setq notmuch-show-empty-saved-searches t) (setq notmuch-saved-searches '\''(("inbox" . "tag:inbox") ("unread" . "tag:unread") ("empty" . "tag:doesnotexist"))) (notmuch-hello) (message (buffer-string))' 2>&1) +output=$(test_emacs '(setq notmuch-show-empty-saved-searches t) (setq notmuch-saved-searches '\''(("inbox" . "tag:inbox") ("unread" . "tag:unread") ("empty" . "tag:doesnotexist"))) (notmuch-hello) (message "%s" (buffer-string))' 2>&1) expected=$(cat $EXPECTED/notmuch-hello-with-empty) test_expect_equal "$output" "$expected" test_begin_subtest "No saved searches displayed (all with 0 results)" -output=$(test_emacs '(setq notmuch-saved-searches '\''(("empty" . "tag:doesnotexist"))) (notmuch-hello) (message (buffer-string))' 2>&1) +output=$(test_emacs '(setq notmuch-saved-searches '\''(("empty" . "tag:doesnotexist"))) (notmuch-hello) (message "%s" (buffer-string))' 2>&1) expected=$(cat $EXPECTED/notmuch-hello-no-saved-searches) test_expect_equal "$output" "$expected" test_begin_subtest "Basic notmuch-search view in emacs" -output=$(test_emacs '(notmuch-search "tag:inbox") (notmuch-test-wait) (message (buffer-string))' 2>&1) +output=$(test_emacs '(notmuch-search "tag:inbox") (notmuch-test-wait) (message "%s" (buffer-string))' 2>&1) expected=$(cat $EXPECTED/notmuch-search-tag-inbox) test_expect_equal "$output" "$expected" test_begin_subtest "Navigation of notmuch-hello to search results" -output=$(test_emacs '(notmuch-hello) (goto-char (point-min)) (re-search-forward "inbox") (widget-button-press (point)) (notmuch-test-wait) (message (buffer-string))' 2>&1) +output=$(test_emacs '(notmuch-hello) (goto-char (point-min)) (re-search-forward "inbox") (widget-button-press (point)) (notmuch-test-wait) (message "%s" (buffer-string))' 2>&1) expected=$(cat $EXPECTED/notmuch-hello-view-inbox) test_expect_equal "$output" "$expected" test_begin_subtest "Basic notmuch-show view in emacs" maildir_storage_thread=$(notmuch search --output=threads id:20091117190054.GU3165@dottiness.seas.harvard.edu) -output=$(test_emacs "(notmuch-show \"$maildir_storage_thread\") (message (buffer-string))" 2>&1) +output=$(test_emacs "(notmuch-show \"$maildir_storage_thread\") (message \"%s\" (buffer-string))" 2>&1) expected=$(cat $EXPECTED/notmuch-show-thread-maildir-storage) test_expect_equal "$output" "$expected" test_begin_subtest "Navigation of notmuch-search to thread view" -output=$(test_emacs '(notmuch-search "tag:inbox") (notmuch-test-wait) (goto-char (point-min)) (re-search-forward "Working with Maildir") (notmuch-search-show-thread) (notmuch-test-wait) (message (buffer-string))' 2>&1) +output=$(test_emacs '(notmuch-search "tag:inbox") (notmuch-test-wait) (goto-char (point-min)) (re-search-forward "Working with Maildir") (notmuch-search-show-thread) (notmuch-test-wait) (message "%s" (buffer-string))' 2>&1) test_expect_equal "$output" "$expected" test_begin_subtest "Add tag from search view" @@ -102,7 +102,7 @@ test_expect_equal "$output" "thread:XXX 1974-03-29 [1/1] Notmuch Test Suite; T test_begin_subtest "Reply within emacs" # We sed away everything before the ^From in the output to avoid getting # confused by messages such as "Parsing /home/cworth/.mailrc... done" -output=$(test_emacs '(notmuch-search "subject:\"testing message sent via SMTP\"") (notmuch-test-wait) (notmuch-search-reply-to-thread) (message (buffer-string))' 2>&1 | sed -ne '/^From/,$ p' | sed -e 's/^In-Reply-To: <.*>$/In-Reply-To: /') +output=$(test_emacs '(notmuch-search "subject:\"testing message sent via SMTP\"") (notmuch-test-wait) (notmuch-search-reply-to-thread) (message "%s" (buffer-string))' 2>&1 | sed -ne '/^From/,$ p' | sed -e 's/^In-Reply-To: <.*>$/In-Reply-To: /') test_expect_equal "$output" "From: Notmuch Test Suite To: user@example.com Subject: Re: Testing message sent via SMTP @@ -125,7 +125,7 @@ test_expect_equal_file "$EXPECTED/attachment" attachment2.gz test_begin_subtest "View raw message within emacs" expected=$(cat $EXPECTED/raw-message-cf0c4d-52ad0a) first_line=$(echo "$expected" | head -n1) -output=$(test_emacs '(notmuch-show "id:cf0c4d610911171136h1713aa59w9cf9aa31f052ad0a@mail.gmail.com") (notmuch-show-view-raw-message) (message (buffer-string))' 2>&1 | sed -ne "/$first_line/,\$ p") +output=$(test_emacs '(notmuch-show "id:cf0c4d610911171136h1713aa59w9cf9aa31f052ad0a@mail.gmail.com") (notmuch-show-view-raw-message) (message "%s" (buffer-string))' 2>&1 | sed -ne "/$first_line/,\$ p") test_expect_equal "$output" "$expected" test_done diff --git a/test/emacs-large-search-buffer b/test/emacs-large-search-buffer index a3b5c79..77878b5 100755 --- a/test/emacs-large-search-buffer +++ b/test/emacs-large-search-buffer @@ -21,11 +21,12 @@ notmuch new > /dev/null test_begin_subtest "Ensure that emacs doesn't drop results" expected="$(notmuch search '*' | sed -e 's/^thread:[0-9a-f]* //' -e 's/;//' -e 's/xx*/[BLOB]/') End of search results." -output=$(test_emacs '(notmuch-search "*") (notmuch-test-wait) (message (buffer-string))' 2>&1 | sed -e s', *, ,g' -e 's/xxx*/[BLOB]/g') + +output=$(test_emacs '(notmuch-search "*") (notmuch-test-wait) (message "%s" (buffer-string))' 2>&1 | sed -e s', *, ,g' -e 's/xxx*/[BLOB]/g') test_expect_equal "$output" "$expected" test_begin_subtest "Ensure that emacs doesn't drop error messages" -output=$(test_emacs '(notmuch-search "--this-option-does-not-exist") (notmuch-test-wait) (message (buffer-string))' 2>&1) +output=$(test_emacs '(notmuch-search "--this-option-does-not-exist") (notmuch-test-wait) (message "%s" (buffer-string))' 2>&1) test_expect_equal "$output" "Error: Unexpected output from notmuch search: Unrecognized option: --this-option-does-not-exist End of search results. (process returned 1)" -- 1.7.5.1