Re: [PATCH] emacs: call notmuch-show instead notmuch-search in buttonised id: links
[notmuch-archives.git] / cb / 8603e881d0d521a073796db4e0e9818064015e
1 Return-Path: <dmitry.kurochkin@gmail.com>\r
2 X-Original-To: notmuch@notmuchmail.org\r
3 Delivered-To: notmuch@notmuchmail.org\r
4 Received: from localhost (localhost [127.0.0.1])\r
5         by olra.theworths.org (Postfix) with ESMTP id 3EED9429E33\r
6         for <notmuch@notmuchmail.org>; Sun, 27 Nov 2011 10:36:51 -0800 (PST)\r
7 X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
8 X-Spam-Flag: NO\r
9 X-Spam-Score: -0.799\r
10 X-Spam-Level: \r
11 X-Spam-Status: No, score=-0.799 tagged_above=-999 required=5\r
12         tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,\r
13         FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled\r
14 Received: from olra.theworths.org ([127.0.0.1])\r
15         by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
16         with ESMTP id ltVMGtHdSC0l for <notmuch@notmuchmail.org>;\r
17         Sun, 27 Nov 2011 10:36:49 -0800 (PST)\r
18 Received: from mail-bw0-f53.google.com (mail-bw0-f53.google.com\r
19         [209.85.214.53]) (using TLSv1 with cipher RC4-SHA (128/128 bits))\r
20         (No client certificate requested)\r
21         by olra.theworths.org (Postfix) with ESMTPS id 81A13429E26\r
22         for <notmuch@notmuchmail.org>; Sun, 27 Nov 2011 10:36:47 -0800 (PST)\r
23 Received: by bkaq10 with SMTP id q10so8006916bka.26\r
24         for <notmuch@notmuchmail.org>; Sun, 27 Nov 2011 10:36:46 -0800 (PST)\r
25 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma;\r
26         h=from:to:subject:date:message-id:x-mailer:in-reply-to:references;\r
27         bh=um1k2bHXxFXLQIusIXomr3Zo1em9TFc10EaDya0tLnI=;\r
28         b=xaa8+dOE++BfcaSlBAy7f3gk/lSFYtrrn9pInbTrB+pxEnnYszimgmdS8prS5kEjj2\r
29         KrV7jHCw9tzh7wWOZZc5T1XDTe1dYJGEs88eOWeS/XLe+7xigbPToU8c5YVtaNMUBIKt\r
30         +4CicJHFwb0d9FZXGFAko0yHB0Jbk/r4bFbMo=\r
31 Received: by 10.205.118.14 with SMTP id fo14mr42632089bkc.63.1322419006145;\r
32         Sun, 27 Nov 2011 10:36:46 -0800 (PST)\r
33 Received: from localhost ([91.144.186.21])\r
34         by mx.google.com with ESMTPS id hy13sm25145042bkc.0.2011.11.27.10.36.45\r
35         (version=TLSv1/SSLv3 cipher=OTHER);\r
36         Sun, 27 Nov 2011 10:36:45 -0800 (PST)\r
37 From: Dmitry Kurochkin <dmitry.kurochkin@gmail.com>\r
38 To: notmuch@notmuchmail.org\r
39 Subject: [PATCH v3 1/7] test: add support for external executable dependencies\r
40 Date: Sun, 27 Nov 2011 22:36:13 +0400\r
41 Message-Id: <1322418979-19180-2-git-send-email-dmitry.kurochkin@gmail.com>\r
42 X-Mailer: git-send-email 1.7.7.3\r
43 In-Reply-To: <1322418979-19180-1-git-send-email-dmitry.kurochkin@gmail.com>\r
44 References: <87pqgd7d23.fsf@rocinante.cs.unb.ca>\r
45         <1322418979-19180-1-git-send-email-dmitry.kurochkin@gmail.com>\r
46 X-BeenThere: notmuch@notmuchmail.org\r
47 X-Mailman-Version: 2.1.13\r
48 Precedence: list\r
49 List-Id: "Use and development of the notmuch mail system."\r
50         <notmuch.notmuchmail.org>\r
51 List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
52         <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
53 List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
54 List-Post: <mailto:notmuch@notmuchmail.org>\r
55 List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
56 List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
57         <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
58 X-List-Received-Date: Sun, 27 Nov 2011 18:36:51 -0000\r
59 \r
60 There is existing support for general prerequisites in the test suite.\r
61 But it is not very convenient to use: every test case has to keep\r
62 track for it's dependencies and they have to be explicitly listed.\r
63 \r
64 The patch aims to add better support for a particular type of external\r
65 dependencies: external executables.  The main idea is to replace\r
66 missing external binaries with shell functions that have the same\r
67 name.  These functions always fail and keep track of missing\r
68 dependencies for a subtest.  The result reporting functions later can\r
69 check that an external binaries are missing and correctly report SKIP\r
70 result instead of FAIL.  The primary benefit is that the test cases do\r
71 not need to declare their dependencies or be changed in any way.\r
72 ---\r
73  test/test-lib.sh |   49 +++++++++++++++++++++++++++++++++++++++++--------\r
74  1 files changed, 41 insertions(+), 8 deletions(-)\r
75 \r
76 diff --git a/test/test-lib.sh b/test/test-lib.sh\r
77 index 076f929..0996a74 100644\r
78 --- a/test/test-lib.sh\r
79 +++ b/test/test-lib.sh\r
80 @@ -548,6 +548,19 @@ test_have_prereq () {\r
81         esac\r
82  }\r
83  \r
84 +# declare prerequisite for the given external binary\r
85 +test_declare_external_prereq () {\r
86 +       binary="$1"\r
87 +       test "$#" = 2 && name=$2 || name="$binary(1)"\r
88 +\r
89 +       hash $binary 2>/dev/null || eval "\r
90 +$binary () {\r
91 +       echo -n \"\$test_subtest_missing_external_prereqs_\" | grep -e \" $name \" ||\r
92 +       test_subtest_missing_external_prereqs_=\"$test_subtest_missing_external_prereqs_ $name\"\r
93 +       false\r
94 +}"\r
95 +}\r
96 +\r
97  # You are not expected to call test_ok_ and test_failure_ directly, use\r
98  # the text_expect_* functions instead.\r
99  \r
100 @@ -624,18 +637,31 @@ test_skip () {\r
101         fi\r
102         case "$to_skip" in\r
103         t)\r
104 -               test_reset_state_\r
105 -               say_color skip >&3 "skipping test: $@"\r
106 -               say_color skip "%-6s" "SKIP"\r
107 -               echo " $1"\r
108 -               : true\r
109 +               test_report_skip_ "$@"\r
110                 ;;\r
111         *)\r
112 -               false\r
113 +               test_check_missing_external_prereqs_ "$@"\r
114                 ;;\r
115         esac\r
116  }\r
117  \r
118 +test_check_missing_external_prereqs_ () {\r
119 +       if test -n "$test_subtest_missing_external_prereqs_"; then\r
120 +               say_color skip >&3 "missing prerequisites:"\r
121 +               echo "$test_subtest_missing_external_prereqs_" >&3\r
122 +               test_report_skip_ "$@"\r
123 +       else\r
124 +               false\r
125 +       fi\r
126 +}\r
127 +\r
128 +test_report_skip_ () {\r
129 +       test_reset_state_\r
130 +       say_color skip >&3 "skipping test: $@"\r
131 +       say_color skip "%-6s" "SKIP"\r
132 +       echo " $1"\r
133 +}\r
134 +\r
135  test_subtest_known_broken () {\r
136         test_subtest_known_broken_=t\r
137  }\r
138 @@ -648,7 +674,10 @@ test_expect_success () {\r
139         if ! test_skip "$@"\r
140         then\r
141                 test_run_ "$2"\r
142 -               if [ "$?" = 0 -a "$eval_ret" = 0 ]\r
143 +               run_ret="$?"\r
144 +               # test_run_ may update missing external prerequisites\r
145 +               test_check_missing_external_prereqs_ "$@" ||\r
146 +               if [ "$run_ret" = 0 -a "$eval_ret" = 0 ]\r
147                 then\r
148                         test_ok_ "$1"\r
149                 else\r
150 @@ -665,7 +694,10 @@ test_expect_code () {\r
151         if ! test_skip "$@"\r
152         then\r
153                 test_run_ "$3"\r
154 -               if [ "$?" = 0 -a "$eval_ret" = "$1" ]\r
155 +               run_ret="$?"\r
156 +               # test_run_ may update missing external prerequisites,\r
157 +               test_check_missing_external_prereqs_ "$@" ||\r
158 +               if [ "$run_ret" = 0 -a "$eval_ret" = "$1" ]\r
159                 then\r
160                         test_ok_ "$2"\r
161                 else\r
162 @@ -870,6 +902,7 @@ test_emacs () {\r
163  \r
164  test_reset_state_ () {\r
165         test_subtest_known_broken_=\r
166 +       test_subtest_missing_external_prereqs_=\r
167  }\r
168  \r
169  \r
170 -- \r
171 1.7.7.3\r
172 \r