From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id yFdyJ+m5jWCDCwEAgWs5BA (envelope-from ) for ; Sat, 01 May 2021 22:28:25 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id aAcdI+m5jWCTFgAAB5/wlQ (envelope-from ) for ; Sat, 01 May 2021 20:28:25 +0000 Received: from mail.notmuchmail.org (nmbug.tethera.net [144.217.243.247]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 9A3E619189 for ; Sat, 1 May 2021 22:28:24 +0200 (CEST) Received: from nmbug.tethera.net (localhost [127.0.0.1]) by mail.notmuchmail.org (Postfix) with ESMTP id 7239A2717A; Sat, 1 May 2021 16:28:19 -0400 (EDT) Received: from lahtoruutu.iki.fi (lahtoruutu.iki.fi [IPv6:2a0b:5c81:1c1::37]) by mail.notmuchmail.org (Postfix) with ESMTPS id 6592A2716D for ; Sat, 1 May 2021 16:28:16 -0400 (EDT) Received: from guru.guru-group.fi (unknown [IPv6:2a02:2380:1:9:5054:ff:feb7:a4bc]) (using TLSv1.2 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: too) by lahtoruutu.iki.fi (Postfix) with ESMTPSA id 100D31B0102A; Sat, 1 May 2021 23:28:15 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iki.fi; s=lahtoruutu; t=1619900895; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=w2GBfWhOVkcbHPydogQ9qlK+4oWb920snJdckiIWeYs=; b=StgX1K2e6faGsbxAT5JSJfDsW+mRW1aWrhN/0WSlfqg2JpZqnBokCYFo+fSnQtoR7yCjwi fSPQdkIIkjnm33c21Mxz6BLKkq1Nk+OuKKT3P8bZU8b/2cM1VgUSGkoC4HG7NIqnGS9nad hLBxLLFS2O+pYDFguLZqOpIyeajbJzfCaOtw5LkTBYu+G/NqlRWndzN+9zextfyTVOYbEd w5oDJoXiYnQWiyf/w2a3DZpIsugFblrVAtOrS+8G/QNyhjU/UOSiG3VngVfHfnTSMMQUZS kQpDfU6BhB5aou+xFW2VtBnSVKdY5dIJxubHx8fW8ALAyg5l/PzyznGQvWZv0A== From: Tomi Ollila To: Felipe Contreras , notmuch@notmuchmail.org Subject: Re: [PATCH 08/13] test: split emacs functionality to its own file In-Reply-To: <20210501115422.483314-9-felipe.contreras@gmail.com> References: <20210501115422.483314-1-felipe.contreras@gmail.com> <20210501115422.483314-9-felipe.contreras@gmail.com> User-Agent: Notmuch/0.31.4+128~gc67b63a (https://notmuchmail.org) Emacs/27.1 X-Face: HhBM'cA~ MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=iki.fi; s=lahtoruutu; t=1619900895; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=w2GBfWhOVkcbHPydogQ9qlK+4oWb920snJdckiIWeYs=; b=AqW9aN3aAFPKSVHigqNQdJCVy3xG2jOiAM6fxC/9tCNkLBF4S/rk95HCm5oet3FF8GmN4e SFi4tobKwr2/5ZAB3oprH/OFITwRENw7Gl97ANUfBe7xNA89zFBBRFM7MPqce6cRoZ+9Gt 0YDbQAku30QGOOkW97FVchaF3YviCHTG04I1AiMO1n+yKifm2E9gkb5ZYRj7lkbnMW7H7s iUUjVKtnWqDFZv5icoU5jNef//bxa+IMosXHomjLtxP6B2DUXRptd3IOD5JOO++7TJ1YNP M4mcmoJwhLgJpI8zrpR/gRI027WTRIRKkpUnRI4XmBIWOviY1YeJ5ba8UGiF1Q== ARC-Authentication-Results: i=1; ORIGINATING; auth=pass smtp.auth=too smtp.mailfrom=tomi.ollila@iki.fi ARC-Seal: i=1; s=lahtoruutu; d=iki.fi; t=1619900895; a=rsa-sha256; cv=none; b=Kk6xekLiWzxELymOeN1GAq1hpW/6MTD6hpF3YsahCYBhZw5Pyk569+MvhWaoIDSuVTfzFN 6ZsqYUyebDjc+ALb7mpf16KGAve1koT/Miv5my9RgdyK9TmekDrmkzMkTUgZ5MVPxjKmDB 1NmV4hjOjdAaYMe+N6gthSZvl02L9uyEXtfVSBmpi6eEAMDCOgXX3jnPCGD9SvtOgg7fc2 9+LzTBOTwZxAnwErP+6MPmOZesAm0ZMBpZftmPH4gv8M0wE1Wuk99gOimovNZGtClGY9dr CMW7ahWrUkpPBTvdOWdN+qelBrGG5MLku4U5jpeMLgOhIwVpMJ251tYezitbyg== Message-ID-Hash: MVIJOEYGLKEKLI6H3WM55XQ5CJLCIFFQ X-Message-ID-Hash: MVIJOEYGLKEKLI6H3WM55XQ5CJLCIFFQ X-MailFrom: tomi.ollila@iki.fi X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-notmuch.notmuchmail.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header CC: Daniel Kahn Gillmor X-Mailman-Version: 3.2.1 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Help: List-Post: List-Subscribe: List-Unsubscribe: Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1619900904; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=KmQHaCxjduQfOovqazJCTh8XPH7lfaP9bNjweAQtpec=; b=N6JNYTS1VekB0kBDX7pavFM5G5uu2OriwlFqReqeMzXtF7AQ+Q0Fft1wJHziXYsI+gSDvI 3LWAPbkTld1fs8wiD7hfrL7N62Acqc3D6O/gAVtbB1VKf0H2Z0E9DNiYkGaSSCDjzctOQ8 +rHiE+osAhmgowdYLulo9MlSHHha0Tl8Gp9zNV9lGZXjYJ5aItG808W8Sahc0J15467vWk 1mxpWq9QACgTBhKaBpHT6ZjXDYrasIYbNITOV6iYs0f0HbnHuUQp//IujAKIO0FMtAoxLR JNSMFluyJJV/ImKAUeChI0Zf8Q2cWBbdZS7zt203b9n6/LUcRoKJISo5D3RJSA== ARC-Seal: i=2; s=key1; d=yhetil.org; t=1619900904; a=rsa-sha256; cv=fail; b=lwLY1BYo11cM1XNxyb6X/iGFWBj1OGOB41gImRhLa2GXrxo4XGQY+1YBLvN1HXCmo2CpQ3 mAIkHipLXnchETtyYKaMgok01Ch6Ws+V1F/0K1NsI4CORvjsNzW33wSUv7AOtGWQch1kji 5Wy4agUa5TdTs/gafq15QHRPl3B46trSl4yv8Ph7WUW+8U/lNet5KJY7UtiVwqYyD25hWI GTptuGU1zQtB5gAqT9eSRcrTJNO5PgVlNWuHqNjYnYr2o2MLR69q4QYUt4ZfZjGB3bkXJZ 5iaTMVUByl7uzN8y3Ngwfrq9ZyrU0lwBEb2wqpl4bxxfgQ1Arfvz+y7WBY54cA== ARC-Authentication-Results: i=2; aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=iki.fi header.s=lahtoruutu header.b=StgX1K2e; arc=reject ("signature check failed: fail, {[1] = sig:iki.fi:reject}"); spf=pass (aspmx1.migadu.com: domain of notmuch-bounces@notmuchmail.org designates 144.217.243.247 as permitted sender) smtp.mailfrom=notmuch-bounces@notmuchmail.org X-Migadu-Spam-Score: 0.91 Authentication-Results: aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=iki.fi header.s=lahtoruutu header.b=StgX1K2e; arc=reject ("signature check failed: fail, {[1] = sig:iki.fi:reject}"); dmarc=none; spf=pass (aspmx1.migadu.com: domain of notmuch-bounces@notmuchmail.org designates 144.217.243.247 as permitted sender) smtp.mailfrom=notmuch-bounces@notmuchmail.org X-Migadu-Queue-Id: 9A3E619189 X-Spam-Score: 0.91 X-Migadu-Scanner: scn0.migadu.com X-TUID: FsT4s5+wN15H On Sat, May 01 2021, Felipe Contreras wrote: > This way it's easier to identify the tests that do require emacs stuff. > > Signed-off-by: Felipe Contreras > --- > test/T160-json.sh | 1 + > test/T170-sexp.sh | 1 + > test/T310-emacs.sh | 1 + > test/T320-emacs-large-search-buffer.sh | 3 + > test/T330-emacs-subject-to-filename.sh | 3 + > test/T350-crypto.sh | 1 + > test/T355-smime.sh | 1 + > test/T357-index-decryption.sh | 1 + > test/T358-emacs-protected-headers.sh | 2 + > test/T420-emacs-test-functions.sh | 1 + > test/T430-emacs-address-cleaning.sh | 3 + > test/T440-emacs-hello.sh | 2 + > test/T450-emacs-show.sh | 1 + > test/T455-emacs-charsets.sh | 3 + > test/T460-emacs-tree.sh | 1 + > test/T510-thread-replies.sh | 1 + > test/T630-emacs-draft.sh | 2 + > test/T720-emacs-attachment-warnings.sh | 3 + > test/T730-emacs-forwarding.sh | 1 + > test/test-lib-emacs.sh | 213 +++++++++++++++++++++++++ > test/test-lib.sh | 199 ----------------------- > 21 files changed, 245 insertions(+), 199 deletions(-) > create mode 100644 test/test-lib-emacs.sh > > diff --git a/test/T160-json.sh b/test/T160-json.sh > index e8b75605..638afb4d 100755 > --- a/test/T160-json.sh > +++ b/test/T160-json.sh > @@ -1,6 +1,7 @@ > #!/usr/bin/env bash > test_description="--format=json output" > . $(dirname "$0")/test-lib.sh || exit 1 > +. $(dirname "$0")/test-lib-emacs.sh || exit 1 > > test_begin_subtest "Show message: json" > add_message "[subject]=\"json-show-subject\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[bcc]=\"test_suite+bcc@notmuchmail.org\"" "[reply-to]=\"test_suite+replyto@notmuchmail.org\"" "[body]=\"json-show-message\"" > diff --git a/test/T170-sexp.sh b/test/T170-sexp.sh > index 24be8351..af8c4b44 100755 > --- a/test/T170-sexp.sh > +++ b/test/T170-sexp.sh > @@ -1,6 +1,7 @@ > #!/usr/bin/env bash > test_description="--format=sexp output" > . $(dirname "$0")/test-lib.sh || exit 1 > +. $(dirname "$0")/test-lib-emacs.sh || exit 1 > > test_begin_subtest "Show message: sexp" > add_message "[subject]=\"sexp-show-subject\"" "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" "[bcc]=\"test_suite+bcc@notmuchmail.org\"" "[reply-to]=\"test_suite+replyto@notmuchmail.org\"" "[body]=\"sexp-show-message\"" > diff --git a/test/T310-emacs.sh b/test/T310-emacs.sh > index e64627c6..c08df5fc 100755 > --- a/test/T310-emacs.sh > +++ b/test/T310-emacs.sh > @@ -2,6 +2,7 @@ > > test_description="emacs interface" > . $(dirname "$0")/test-lib.sh || exit 1 > +. $(dirname "$0")/test-lib-emacs.sh || exit 1 > > EXPECTED=$NOTMUCH_SRCDIR/test/emacs.expected-output > > diff --git a/test/T320-emacs-large-search-buffer.sh b/test/T320-emacs-large-search-buffer.sh > index f61e8a97..d2638c8b 100755 > --- a/test/T320-emacs-large-search-buffer.sh > +++ b/test/T320-emacs-large-search-buffer.sh > @@ -1,11 +1,14 @@ > #!/usr/bin/env bash > test_description="Emacs with large search results buffer" > . $(dirname "$0")/test-lib.sh || exit 1 > +. $(dirname "$0")/test-lib-emacs.sh || exit 1 > > x=xxxxxxxxxx # 10 > x=$x$x$x$x$x$x$x$x$x$x # 100 > x=$x$x$x$x$x$x$x$x$x # 900 > > +test_require_emacs Could the following work in case of emacs tests: . $(dirname "$0")/test-lib.sh || exit 1 test_require_emacs . $(dirname "$0")/test-lib-emacs.sh || exit 1 i.e. in case of emacs tests test_require_emacs would always be needed -- and it requirement not satisfied, exit even before sourcing test-lib-emacs.sh Tomi > . $(dirname "$0")/test-lib.sh || exit 1 > +. $(dirname "$0")/test-lib-emacs.sh || exit 1 > > x=xxxxxxxxxx # 10 > x=$x$x$x$x$x$x$x$x$x$x # 100 > x=$x$x$x$x$x$x$x$x$x # 900 > > +test_require_emacs > + > # We generate a long subject here (over 900 bytes) so that the emacs > # search results get large quickly. With 30 such messages we should > # cross several 4kB page boundaries and see the bug. > diff --git a/test/T330-emacs-subject-to-filename.sh b/test/T330-emacs-subject-to-filename.sh > index eaf7c980..6e09a048 100755 > --- a/test/T330-emacs-subject-to-filename.sh > +++ b/test/T330-emacs-subject-to-filename.sh > @@ -2,6 +2,9 @@ > > test_description="emacs: mail subject to filename" > . $(dirname "$0")/test-lib.sh || exit 1 > +. $(dirname "$0")/test-lib-emacs.sh || exit 1 > + > +test_require_emacs > > # emacs server can't be started in a child process with $(test_emacs ...) > test_emacs '(ignore)' > /dev/null > diff --git a/test/T350-crypto.sh b/test/T350-crypto.sh > index ae1d6a98..4508c984 100755 > --- a/test/T350-crypto.sh > +++ b/test/T350-crypto.sh > @@ -6,6 +6,7 @@ > > test_description='PGP/MIME signature verification and decryption' > . $(dirname "$0")/test-lib.sh || exit 1 > +. $(dirname "$0")/test-lib-emacs.sh || exit 1 > > ################################################## > > diff --git a/test/T355-smime.sh b/test/T355-smime.sh > index 12ac2525..69bdcfac 100755 > --- a/test/T355-smime.sh > +++ b/test/T355-smime.sh > @@ -2,6 +2,7 @@ > > test_description='S/MIME signature verification and decryption' > . $(dirname "$0")/test-lib.sh || exit 1 > +. $(dirname "$0")/test-lib-emacs.sh || exit 1 > > test_require_emacs > test_require_external_prereq openssl > diff --git a/test/T357-index-decryption.sh b/test/T357-index-decryption.sh > index b81bdfe1..f5644d7e 100755 > --- a/test/T357-index-decryption.sh > +++ b/test/T357-index-decryption.sh > @@ -4,6 +4,7 @@ > > test_description='indexing decrypted mail' > . $(dirname "$0")/test-lib.sh || exit 1 > +. $(dirname "$0")/test-lib-emacs.sh || exit 1 > > ################################################## > > diff --git a/test/T358-emacs-protected-headers.sh b/test/T358-emacs-protected-headers.sh > index bca78531..b25d7ea7 100755 > --- a/test/T358-emacs-protected-headers.sh > +++ b/test/T358-emacs-protected-headers.sh > @@ -2,8 +2,10 @@ > > test_description="protected headers in emacs interface" > . $(dirname "$0")/test-lib.sh || exit 1 > +. $(dirname "$0")/test-lib-emacs.sh || exit 1 > > # testing protected headers with emacs > +test_require_emacs > add_gnupg_home > add_email_corpus protected-headers > > diff --git a/test/T420-emacs-test-functions.sh b/test/T420-emacs-test-functions.sh > index bfc10be3..22e4f01e 100755 > --- a/test/T420-emacs-test-functions.sh > +++ b/test/T420-emacs-test-functions.sh > @@ -2,6 +2,7 @@ > > test_description="emacs test function sanity" > . $(dirname "$0")/test-lib.sh || exit 1 > +. $(dirname "$0")/test-lib-emacs.sh || exit 1 > > test_begin_subtest "emacs test function sanity" > test_emacs_expect_t 't' > diff --git a/test/T430-emacs-address-cleaning.sh b/test/T430-emacs-address-cleaning.sh > index 02d3b411..640bff3f 100755 > --- a/test/T430-emacs-address-cleaning.sh > +++ b/test/T430-emacs-address-cleaning.sh > @@ -2,6 +2,9 @@ > > test_description="emacs address cleaning" > . $(dirname "$0")/test-lib.sh || exit 1 > +. $(dirname "$0")/test-lib-emacs.sh || exit 1 > + > +test_require_emacs > > test_begin_subtest "notmuch-test-address-clean part 1" > test_emacs_expect_t '(notmuch-test-address-cleaning-1)' > diff --git a/test/T440-emacs-hello.sh b/test/T440-emacs-hello.sh > index d23c1fca..642aa3cc 100755 > --- a/test/T440-emacs-hello.sh > +++ b/test/T440-emacs-hello.sh > @@ -2,9 +2,11 @@ > > test_description="emacs notmuch-hello view" > . $(dirname "$0")/test-lib.sh || exit 1 > +. $(dirname "$0")/test-lib-emacs.sh || exit 1 > > EXPECTED=$NOTMUCH_SRCDIR/test/emacs.expected-output > > +test_require_emacs > add_email_corpus > > test_begin_subtest "User-defined section with inbox tag" > diff --git a/test/T450-emacs-show.sh b/test/T450-emacs-show.sh > index bd76d378..e58124d4 100755 > --- a/test/T450-emacs-show.sh > +++ b/test/T450-emacs-show.sh > @@ -2,6 +2,7 @@ > > test_description="emacs notmuch-show view" > . $(dirname "$0")/test-lib.sh || exit 1 > +. $(dirname "$0")/test-lib-emacs.sh || exit 1 > > EXPECTED=$NOTMUCH_SRCDIR/test/emacs-show.expected-output > > diff --git a/test/T455-emacs-charsets.sh b/test/T455-emacs-charsets.sh > index cb1297ca..a0f4dc24 100755 > --- a/test/T455-emacs-charsets.sh > +++ b/test/T455-emacs-charsets.sh > @@ -2,11 +2,14 @@ > > test_description="emacs notmuch-show charset handling" > . $(dirname "$0")/test-lib.sh || exit 1 > +. $(dirname "$0")/test-lib-emacs.sh || exit 1 > > > UTF8_YEN=$'\xef\xbf\xa5' > BIG5_YEN=$'\xa2\x44' > > +test_require_emacs > + > # Add four messages with unusual encoding requirements: > # > # 1) text/plain in quoted-printable big5 > diff --git a/test/T460-emacs-tree.sh b/test/T460-emacs-tree.sh > index 195485c1..dfc69049 100755 > --- a/test/T460-emacs-tree.sh > +++ b/test/T460-emacs-tree.sh > @@ -2,6 +2,7 @@ > > test_description="emacs tree view interface" > . $(dirname "$0")/test-lib.sh || exit 1 > +. $(dirname "$0")/test-lib-emacs.sh || exit 1 > > EXPECTED=$NOTMUCH_SRCDIR/test/emacs-tree.expected-output > > diff --git a/test/T510-thread-replies.sh b/test/T510-thread-replies.sh > index 2859d29f..cdb4be44 100755 > --- a/test/T510-thread-replies.sh > +++ b/test/T510-thread-replies.sh > @@ -10,6 +10,7 @@ test_description='test of proper handling of in-reply-to and references headers' > # non-RFC-compliant headers' > > . $(dirname "$0")/test-lib.sh || exit 1 > +. $(dirname "$0")/test-lib-emacs.sh || exit 1 > > test_begin_subtest "Use References when In-Reply-To is broken" > add_message '[id]="foo@one.com"' \ > diff --git a/test/T630-emacs-draft.sh b/test/T630-emacs-draft.sh > index d7903ce7..8553f022 100755 > --- a/test/T630-emacs-draft.sh > +++ b/test/T630-emacs-draft.sh > @@ -1,7 +1,9 @@ > #!/usr/bin/env bash > test_description="Emacs Draft Handling" > . $(dirname "$0")/test-lib.sh || exit 1 > +. $(dirname "$0")/test-lib-emacs.sh || exit 1 > > +test_require_emacs > add_email_corpus > > notmuch config set search.exclude_tags deleted > diff --git a/test/T720-emacs-attachment-warnings.sh b/test/T720-emacs-attachment-warnings.sh > index c8d2bcc2..4e8c5d26 100755 > --- a/test/T720-emacs-attachment-warnings.sh > +++ b/test/T720-emacs-attachment-warnings.sh > @@ -2,6 +2,9 @@ > > test_description="emacs attachment warnings" > . $(dirname "$0")/test-lib.sh || exit 1 > +. $(dirname "$0")/test-lib-emacs.sh || exit 1 > + > +test_require_emacs > > test_begin_subtest "notmuch-test-attachment-warning part 1" > test_emacs_expect_t '(notmuch-test-attachment-warning-1)' > diff --git a/test/T730-emacs-forwarding.sh b/test/T730-emacs-forwarding.sh > index 5d6ac9f0..378067ed 100755 > --- a/test/T730-emacs-forwarding.sh > +++ b/test/T730-emacs-forwarding.sh > @@ -2,6 +2,7 @@ > > test_description="emacs forwarding" > . $(dirname "$0")/test-lib.sh || exit 1 > +. $(dirname "$0")/test-lib-emacs.sh || exit 1 > > test_require_emacs > > diff --git a/test/test-lib-emacs.sh b/test/test-lib-emacs.sh > new file mode 100644 > index 00000000..ecad501a > --- /dev/null > +++ b/test/test-lib-emacs.sh > @@ -0,0 +1,213 @@ > +# > +# Copyright (c) 2010-2020 Notmuch Developers > +# > +# This program is free software: you can redistribute it and/or modify > +# it under the terms of the GNU General Public License as published by > +# the Free Software Foundation, either version 2 of the License, or > +# (at your option) any later version. > +# > +# This program is distributed in the hope that it will be useful, > +# but WITHOUT ANY WARRANTY; without even the implied warranty of > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > +# GNU General Public License for more details. > +# > +# You should have received a copy of the GNU General Public License > +# along with this program. If not, see https://www.gnu.org/licenses/ . > + > +test_require_emacs () { > + test_require_external_prereq emacs > + test_require_external_prereq ${TEST_EMACSCLIENT} > + test_require_external_prereq dtach > +} > + > +# Deliver a message with emacs and add it to the database > +# > +# Uses emacs to generate and deliver a message to the mail store. > +# Accepts arbitrary extra emacs/elisp functions to modify the message > +# before sending, which is useful to doing things like attaching files > +# to the message and encrypting/signing. > +emacs_deliver_message () > +{ > + local subject body smtp_dummy_pid smtp_dummy_port > + subject="$1" > + body="$2" > + shift 2 > + # before we can send a message, we have to prepare the FCC maildir > + mkdir -p "$MAIL_DIR"/sent/{cur,new,tmp} > + # eval'ing smtp-dummy --background will set smtp_dummy_pid and -_port > + smtp_dummy_pid= smtp_dummy_port= > + eval `$TEST_DIRECTORY/smtp-dummy --background sent_message` > + test -n "$smtp_dummy_pid" || return 1 > + test -n "$smtp_dummy_port" || return 1 > + > + test_emacs \ > + "(let ((message-send-mail-function 'message-smtpmail-send-it) > + (mail-host-address \"example.com\") > + (smtpmail-smtp-server \"localhost\") > + (smtpmail-smtp-service \"${smtp_dummy_port}\")) > + (notmuch-mua-mail) > + (message-goto-to) > + (insert \"test_suite@notmuchmail.org\nDate: 01 Jan 2000 12:00:00 -0000\") > + (message-goto-subject) > + (insert \"${subject}\") > + (message-goto-body) > + (insert \"${body}\") > + $* > + (notmuch-mua-send-and-exit))" > + > + # In case message was sent properly, client waits for confirmation > + # before exiting and resuming control here; therefore making sure > + # that server exits by sending (KILL) signal to it is safe. > + kill -9 $smtp_dummy_pid > + notmuch new >/dev/null > +} > + > +# Pretend to deliver a message with emacs. Really save it to a file > +# and add it to the database > +# > +# Uses emacs to generate and deliver a message to the mail store. > +# Accepts arbitrary extra emacs/elisp functions to modify the message > +# before sending, which is useful to doing things like attaching files > +# to the message and encrypting/signing. > +# > +# If any GNU-style long-arguments (like --quiet or --decrypt=true) are > +# at the head of the argument list, they are sent directly to "notmuch > +# new" after message delivery > +emacs_fcc_message () > +{ > + local nmn_args subject body > + nmn_args='' > + while [[ "$1" =~ ^-- ]]; do > + nmn_args="$nmn_args $1" > + shift > + done > + subject="$1" > + body="$2" > + shift 2 > + # before we can send a message, we have to prepare the FCC maildir > + mkdir -p "$MAIL_DIR"/sent/{cur,new,tmp} > + > + test_emacs \ > + "(let ((message-send-mail-function (lambda () t)) > + (mail-host-address \"example.com\")) > + (notmuch-mua-mail) > + (message-goto-to) > + (insert \"test_suite@notmuchmail.org\nDate: 01 Jan 2000 12:00:00 -0000\") > + (message-goto-subject) > + (insert \"${subject}\") > + (message-goto-body) > + (insert \"${body}\") > + $* > + (let ((mml-secure-smime-sign-with-sender t) > + (mml-secure-openpgp-sign-with-sender t)) > + (notmuch-mua-send-and-exit)))" || return 1 > + notmuch new $nmn_args >/dev/null > +} > + > +test_emacs_expect_t () { > + local result > + test "$#" = 1 || > + error "bug in the test script: not 1 parameter to test_emacs_expect_t" > + if [ -z "$inside_subtest" ]; then > + error "bug in the test script: test_emacs_expect_t without test_begin_subtest" > + fi > + > + # Run the test. > + if ! test_skip "$test_subtest_name" > + then > + test_emacs "(notmuch-test-run $1)" >/dev/null > + > + # Restore state after the test. > + exec 1>&6 2>&7 # Restore stdout and stderr > + inside_subtest= > + > + # test_emacs may update missing external prerequisites > + test_check_missing_external_prereqs_ "$test_subtest_name" && return > + > + # Report success/failure. > + result=$(cat OUTPUT) > + if [ "$result" = t ] > + then > + test_ok_ > + else > + test_failure_ "${result}" > + fi > + else > + # Restore state after the (non) test. > + exec 1>&6 2>&7 # Restore stdout and stderr > + inside_subtest= > + fi > +} > + > +emacs_generate_script () { > + # Construct a little test script here for the benefit of the user, > + # (who can easily run "run_emacs" to get the same emacs environment > + # for investigating any failures). > + cat <"$TMP_DIRECTORY/run_emacs" > +#!/bin/sh > +export PATH=$PATH > +export NOTMUCH_CONFIG=$NOTMUCH_CONFIG > + > +# Here's what we are using here: > +# > +# --quick Use minimal customization. This implies --no-init-file, > +# --no-site-file and (emacs 24) --no-site-lisp > +# > +# --directory Ensure that the local elisp sources are found > +# > +# --load Force loading of notmuch.el and test-lib.el > + > +exec ${TEST_EMACS} --quick \ > + --directory "$NOTMUCH_BUILDDIR/emacs" --load notmuch.el \ > + --directory "$NOTMUCH_SRCDIR/test" --load test-lib.el \ > + "\$@" > +EOF > + chmod a+x "$TMP_DIRECTORY/run_emacs" > +} > + > +test_emacs () { > + # test dependencies beforehand to avoid the waiting loop below > + missing_dependencies= > + test_require_external_prereq dtach || missing_dependencies=1 > + test_require_external_prereq emacs || missing_dependencies=1 > + test_require_external_prereq ${TEST_EMACSCLIENT} || missing_dependencies=1 > + test -z "$missing_dependencies" || return > + > + if [ -z "$EMACS_SERVER" ]; then > + emacs_tests="$NOTMUCH_SRCDIR/test/${this_test_bare}.el" > + if [ -f "$emacs_tests" ]; then > + load_emacs_tests="--eval '(load \"$emacs_tests\")'" > + else > + load_emacs_tests= > + fi > + server_name="notmuch-test-suite-$$" > + # start a detached session with an emacs server > + # user's TERM (or 'vt100' in case user's TERM is known dumb > + # or unknown) is given to dtach which assumes a minimally > + # VT100-compatible terminal -- and emacs inherits that > + TERM=$SMART_TERM dtach -n "$TEST_TMPDIR/emacs-dtach-socket.$$" \ > + sh -c "stty rows 24 cols 80; exec '$TMP_DIRECTORY/run_emacs' \ > + --no-window-system \ > + $load_emacs_tests \ > + --eval '(setq server-name \"$server_name\")' \ > + --eval '(server-start)' \ > + --eval '(orphan-watchdog $$)'" || return > + EMACS_SERVER="$server_name" > + # wait until the emacs server is up > + until test_emacs '()' >/dev/null 2>/dev/null; do > + sleep 1 > + done > + fi > + > + # Clear test-output output file. Most Emacs tests end with a > + # call to (test-output). If the test code fails with an > + # exception before this call, the output file won't get > + # updated. Since we don't want to compare against an output > + # file from another test, so start out with an empty file. > + rm -f OUTPUT > + touch OUTPUT > + > + ${TEST_EMACSCLIENT} --socket-name="$EMACS_SERVER" --eval "(notmuch-test-progn $*)" > +} > + > +emacs_generate_script > diff --git a/test/test-lib.sh b/test/test-lib.sh > index 88e2a82f..7fdc0007 100644 > --- a/test/test-lib.sh > +++ b/test/test-lib.sh > @@ -114,12 +114,6 @@ unset ALTERNATE_EDITOR > unset EMAIL > unset NAME > > -test_require_emacs () { > - test_require_external_prereq emacs > - test_require_external_prereq ${TEST_EMACSCLIENT} > - test_require_external_prereq dtach > -} > - > add_gnupg_home () > { > [ -e "${GNUPGHOME}/gpg.conf" ] && return > @@ -349,90 +343,6 @@ export GNUPGHOME="${TEST_TMPDIR}/gnupg" > trap 'trap_exit' EXIT > trap 'trap_signal' HUP INT TERM > > -# Deliver a message with emacs and add it to the database > -# > -# Uses emacs to generate and deliver a message to the mail store. > -# Accepts arbitrary extra emacs/elisp functions to modify the message > -# before sending, which is useful to doing things like attaching files > -# to the message and encrypting/signing. > -emacs_deliver_message () > -{ > - local subject body smtp_dummy_pid smtp_dummy_port > - subject="$1" > - body="$2" > - shift 2 > - # before we can send a message, we have to prepare the FCC maildir > - mkdir -p "$MAIL_DIR"/sent/{cur,new,tmp} > - # eval'ing smtp-dummy --background will set smtp_dummy_pid and -_port > - smtp_dummy_pid= smtp_dummy_port= > - eval `$TEST_DIRECTORY/smtp-dummy --background sent_message` > - test -n "$smtp_dummy_pid" || return 1 > - test -n "$smtp_dummy_port" || return 1 > - > - test_emacs \ > - "(let ((message-send-mail-function 'message-smtpmail-send-it) > - (mail-host-address \"example.com\") > - (smtpmail-smtp-server \"localhost\") > - (smtpmail-smtp-service \"${smtp_dummy_port}\")) > - (notmuch-mua-mail) > - (message-goto-to) > - (insert \"test_suite@notmuchmail.org\nDate: 01 Jan 2000 12:00:00 -0000\") > - (message-goto-subject) > - (insert \"${subject}\") > - (message-goto-body) > - (insert \"${body}\") > - $* > - (notmuch-mua-send-and-exit))" > - > - # In case message was sent properly, client waits for confirmation > - # before exiting and resuming control here; therefore making sure > - # that server exits by sending (KILL) signal to it is safe. > - kill -9 $smtp_dummy_pid > - notmuch new >/dev/null > -} > - > -# Pretend to deliver a message with emacs. Really save it to a file > -# and add it to the database > -# > -# Uses emacs to generate and deliver a message to the mail store. > -# Accepts arbitrary extra emacs/elisp functions to modify the message > -# before sending, which is useful to doing things like attaching files > -# to the message and encrypting/signing. > -# > -# If any GNU-style long-arguments (like --quiet or --decrypt=true) are > -# at the head of the argument list, they are sent directly to "notmuch > -# new" after message delivery > -emacs_fcc_message () > -{ > - local nmn_args subject body > - nmn_args='' > - while [[ "$1" =~ ^-- ]]; do > - nmn_args="$nmn_args $1" > - shift > - done > - subject="$1" > - body="$2" > - shift 2 > - # before we can send a message, we have to prepare the FCC maildir > - mkdir -p "$MAIL_DIR"/sent/{cur,new,tmp} > - > - test_emacs \ > - "(let ((message-send-mail-function (lambda () t)) > - (mail-host-address \"example.com\")) > - (notmuch-mua-mail) > - (message-goto-to) > - (insert \"test_suite@notmuchmail.org\nDate: 01 Jan 2000 12:00:00 -0000\") > - (message-goto-subject) > - (insert \"${subject}\") > - (message-goto-body) > - (insert \"${body}\") > - $* > - (let ((mml-secure-smime-sign-with-sender t) > - (mml-secure-openpgp-sign-with-sender t)) > - (notmuch-mua-send-and-exit)))" || return 1 > - notmuch new $nmn_args >/dev/null > -} > - > # Add an existing, fixed corpus of email to the database. > # > # $1 is the corpus dir under corpora to add, using "default" if unset. > @@ -581,41 +491,6 @@ test_json_nodes () { > fi > } > > -test_emacs_expect_t () { > - local result > - test "$#" = 1 || > - error "bug in the test script: not 1 parameter to test_emacs_expect_t" > - if [ -z "$inside_subtest" ]; then > - error "bug in the test script: test_emacs_expect_t without test_begin_subtest" > - fi > - > - # Run the test. > - if ! test_skip "$test_subtest_name" > - then > - test_emacs "(notmuch-test-run $1)" >/dev/null > - > - # Restore state after the test. > - exec 1>&6 2>&7 # Restore stdout and stderr > - inside_subtest= > - > - # test_emacs may update missing external prerequisites > - test_check_missing_external_prereqs_ "$test_subtest_name" && return > - > - # Report success/failure. > - result=$(cat OUTPUT) > - if [ "$result" = t ] > - then > - test_ok_ > - else > - test_failure_ "${result}" > - fi > - else > - # Restore state after the (non) test. > - exec 1>&6 2>&7 # Restore stdout and stderr > - inside_subtest= > - fi > -} > - > NOTMUCH_NEW () > { > notmuch new "${@}" | grep -v -E -e '^Processed [0-9]*( total)? file|Found [0-9]* total file' > @@ -1046,77 +921,6 @@ test_done () { > fi > } > > -emacs_generate_script () { > - # Construct a little test script here for the benefit of the user, > - # (who can easily run "run_emacs" to get the same emacs environment > - # for investigating any failures). > - cat <"$TMP_DIRECTORY/run_emacs" > -#!/bin/sh > -export PATH=$PATH > -export NOTMUCH_CONFIG=$NOTMUCH_CONFIG > - > -# Here's what we are using here: > -# > -# --quick Use minimal customization. This implies --no-init-file, > -# --no-site-file and (emacs 24) --no-site-lisp > -# > -# --directory Ensure that the local elisp sources are found > -# > -# --load Force loading of notmuch.el and test-lib.el > - > -exec ${TEST_EMACS} --quick \ > - --directory "$NOTMUCH_BUILDDIR/emacs" --load notmuch.el \ > - --directory "$NOTMUCH_SRCDIR/test" --load test-lib.el \ > - "\$@" > -EOF > - chmod a+x "$TMP_DIRECTORY/run_emacs" > -} > - > -test_emacs () { > - # test dependencies beforehand to avoid the waiting loop below > - missing_dependencies= > - test_require_external_prereq dtach || missing_dependencies=1 > - test_require_external_prereq emacs || missing_dependencies=1 > - test_require_external_prereq ${TEST_EMACSCLIENT} || missing_dependencies=1 > - test -z "$missing_dependencies" || return > - > - if [ -z "$EMACS_SERVER" ]; then > - emacs_tests="$NOTMUCH_SRCDIR/test/${this_test_bare}.el" > - if [ -f "$emacs_tests" ]; then > - load_emacs_tests="--eval '(load \"$emacs_tests\")'" > - else > - load_emacs_tests= > - fi > - server_name="notmuch-test-suite-$$" > - # start a detached session with an emacs server > - # user's TERM (or 'vt100' in case user's TERM is known dumb > - # or unknown) is given to dtach which assumes a minimally > - # VT100-compatible terminal -- and emacs inherits that > - TERM=$SMART_TERM dtach -n "$TEST_TMPDIR/emacs-dtach-socket.$$" \ > - sh -c "stty rows 24 cols 80; exec '$TMP_DIRECTORY/run_emacs' \ > - --no-window-system \ > - $load_emacs_tests \ > - --eval '(setq server-name \"$server_name\")' \ > - --eval '(server-start)' \ > - --eval '(orphan-watchdog $$)'" || return > - EMACS_SERVER="$server_name" > - # wait until the emacs server is up > - until test_emacs '()' >/dev/null 2>/dev/null; do > - sleep 1 > - done > - fi > - > - # Clear test-output output file. Most Emacs tests end with a > - # call to (test-output). If the test code fails with an > - # exception before this call, the output file won't get > - # updated. Since we don't want to compare against an output > - # file from another test, so start out with an empty file. > - rm -f OUTPUT > - touch OUTPUT > - > - ${TEST_EMACSCLIENT} --socket-name="$EMACS_SERVER" --eval "(notmuch-test-progn $*)" > -} > - > test_python() { > # Note: if there is need to print debug information from python program, > # use stdout = os.fdopen(6, 'w') or stderr = os.fdopen(7, 'w') > @@ -1210,9 +1014,6 @@ TEST_DIRECTORY=$NOTMUCH_BUILDDIR/test > > . "$NOTMUCH_SRCDIR/test/test-lib-common.sh" || exit 1 > > -emacs_generate_script > - > - > # Use -P to resolve symlinks in our working directory so that the cwd > # in subprocesses like git equals our $PWD (for pathname comparisons). > cd -P "$TMP_DIRECTORY" || error "Cannot set up test environment" > -- > 2.31.0 > _______________________________________________ > notmuch mailing list -- notmuch@notmuchmail.org > To unsubscribe send an email to notmuch-leave@notmuchmail.org