* [PATCH 0/7] Travis and test suite improvements
@ 2017-08-17 17:51 Vladimir Panteleev
2017-08-17 17:51 ` [PATCH 1/7] .travis.yml: Invoke `make download-test-databases' before running tests Vladimir Panteleev
` (7 more replies)
0 siblings, 8 replies; 15+ messages in thread
From: Vladimir Panteleev @ 2017-08-17 17:51 UTC (permalink / raw)
To: notmuch
Test more things better on Travis CI, and fix things in the test suite
that did not run properly on Travis CI.
I've enabled Travis on my GitHub fork, so you can see what the results
would look like here:
https://travis-ci.org/CyberShadow/notmuch
Vladimir Panteleev (7):
.travis.yml: Invoke `make download-test-databases' before running
tests
.travis.yml: Add gdb and gpgsm dependencies
.travis.yml: Replace manual zlib installation with "dist: trusty"
test: Fix T050-new.sh on some Travis CI machines
.travis.yml: Switch to "sudo: false" for faster builds
test: Fix T350-crypto.sh on Emacs snapshots
.travis.yml: Test against several Emacs versions
.travis.yml | 37 ++++++++++++++++++++++++++-----------
test/T050-new.sh | 2 +-
test/T350-crypto.sh | 1 +
3 files changed, 28 insertions(+), 12 deletions(-)
--
2.13.3
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 1/7] .travis.yml: Invoke `make download-test-databases' before running tests
2017-08-17 17:51 [PATCH 0/7] Travis and test suite improvements Vladimir Panteleev
@ 2017-08-17 17:51 ` Vladimir Panteleev
2017-08-17 17:51 ` [PATCH 2/7] .travis.yml: Add gdb and gpgsm dependencies Vladimir Panteleev
` (6 subsequent siblings)
7 siblings, 0 replies; 15+ messages in thread
From: Vladimir Panteleev @ 2017-08-17 17:51 UTC (permalink / raw)
To: notmuch
Download the test message database used for the T530-upgrade.sh test.
If the additional load on the web server is undesired, Travis can be
instructed to cache the file.
---
.travis.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.travis.yml b/.travis.yml
index 6bd397ef..d1aa68b3 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -14,6 +14,7 @@ before_install:
script:
- ./configure
+ - make download-test-databases
- make test
# notifications:
--
2.13.3
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 2/7] .travis.yml: Add gdb and gpgsm dependencies
2017-08-17 17:51 [PATCH 0/7] Travis and test suite improvements Vladimir Panteleev
2017-08-17 17:51 ` [PATCH 1/7] .travis.yml: Invoke `make download-test-databases' before running tests Vladimir Panteleev
@ 2017-08-17 17:51 ` Vladimir Panteleev
2017-08-17 17:51 ` [PATCH 3/7] .travis.yml: Replace manual zlib installation with "dist: trusty" Vladimir Panteleev
` (5 subsequent siblings)
7 siblings, 0 replies; 15+ messages in thread
From: Vladimir Panteleev @ 2017-08-17 17:51 UTC (permalink / raw)
To: notmuch
This allows running more tests which were previously skipped due to
missing dependencies.
---
.travis.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index d1aa68b3..505c4e22 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,7 +1,7 @@
language: c
before_install:
- sudo apt-get update -qq
- - sudo apt-get install dtach libxapian-dev libgmime-2.6-dev libtalloc-dev python-sphinx
+ - sudo apt-get install dtach libxapian-dev libgmime-2.6-dev libtalloc-dev python-sphinx gdb gpgsm
# Notmuch requires zlib 1.2.5.2, unfortunately travis runs on Ubuntu 12.04LTS which
# ships with zlib 1.2.3.3. We need to update to zlib 1.2.5.2 to be able to build.
--
2.13.3
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 3/7] .travis.yml: Replace manual zlib installation with "dist: trusty"
2017-08-17 17:51 [PATCH 0/7] Travis and test suite improvements Vladimir Panteleev
2017-08-17 17:51 ` [PATCH 1/7] .travis.yml: Invoke `make download-test-databases' before running tests Vladimir Panteleev
2017-08-17 17:51 ` [PATCH 2/7] .travis.yml: Add gdb and gpgsm dependencies Vladimir Panteleev
@ 2017-08-17 17:51 ` Vladimir Panteleev
2017-08-17 17:51 ` [PATCH 4/7] test: Fix T050-new.sh on some Travis CI machines Vladimir Panteleev
` (4 subsequent siblings)
7 siblings, 0 replies; 15+ messages in thread
From: Vladimir Panteleev @ 2017-08-17 17:51 UTC (permalink / raw)
To: notmuch
Travis now offers Ubuntu Trusty (14.04 LTS) VMs as test runners, which
is gradually becoming the default. We can opt in to using Trusty now
so that we no longer need to manually update zlib to a newer version.
---
.travis.yml | 13 ++++---------
1 file changed, 4 insertions(+), 9 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 505c4e22..e297e516 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,17 +1,12 @@
language: c
+
+dist: trusty
+sudo: required
+
before_install:
- sudo apt-get update -qq
- sudo apt-get install dtach libxapian-dev libgmime-2.6-dev libtalloc-dev python-sphinx gdb gpgsm
- # Notmuch requires zlib 1.2.5.2, unfortunately travis runs on Ubuntu 12.04LTS which
- # ships with zlib 1.2.3.3. We need to update to zlib 1.2.5.2 to be able to build.
- # TODO: Watch https://github.com/travis-ci/travis-ci/issues/2046 and remove
- # this hack once travis-ci switches to Ubuntu 14.04
- - wget 'https://github.com/notmuch/travis-files/raw/master/zlib1g-dev_1.2.8.dfsg-1ubuntu1_amd64.deb'
- - wget 'https://github.com/notmuch/travis-files/raw/master/zlib1g_1.2.8.dfsg-1ubuntu1_amd64.deb'
- - sudo dpkg -i zlib1g-dev_1.2.8.dfsg-1ubuntu1_amd64.deb zlib1g_1.2.8.dfsg-1ubuntu1_amd64.deb
- - sudo apt-get install -f
-
script:
- ./configure
- make download-test-databases
--
2.13.3
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 4/7] test: Fix T050-new.sh on some Travis CI machines
2017-08-17 17:51 [PATCH 0/7] Travis and test suite improvements Vladimir Panteleev
` (2 preceding siblings ...)
2017-08-17 17:51 ` [PATCH 3/7] .travis.yml: Replace manual zlib installation with "dist: trusty" Vladimir Panteleev
@ 2017-08-17 17:51 ` Vladimir Panteleev
2017-08-17 17:51 ` [PATCH 5/7] .travis.yml: Switch to "sudo: false" for faster builds Vladimir Panteleev
` (3 subsequent siblings)
7 siblings, 0 replies; 15+ messages in thread
From: Vladimir Panteleev @ 2017-08-17 17:51 UTC (permalink / raw)
To: notmuch
On some system configurations, setting a breakpoint on the "add_file"
function then issuing "continue" in gdb causes the debugger to
seemingly jump over the add_file invocation. This results in a test
failure, as the "Handle files vanishing between scandir and add_file"
subtest expects add_file to be called and fail due to the vanishing
file. The compiler optimization level also plays a role - the problem
can be reproduced with CFLAGS having -O2 but not -Og.
This problem was observed manifesting as a test failure on Travis CI
configured with "dist: trusty" and "sudo: false". It was not
reproducible on a local Docker image of Travis' runtime environment,
so Travis' virtualization infrastructure likely plays a role as well.
* T050-new.sh: Breakpoint notmuch_database_add_message instead of
add_file to the same effect, and avoid bad gdb behaviour on Travis
CI.
---
test/T050-new.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/T050-new.sh b/test/T050-new.sh
index ffa303ef..8b7ac4e1 100755
--- a/test/T050-new.sh
+++ b/test/T050-new.sh
@@ -309,7 +309,7 @@ cat <<EOF > notmuch-new-vanish.gdb
set breakpoint pending on
set logging file notmuch-new-vanish-gdb.log
set logging on
-break add_file
+break notmuch_database_add_message
commands
shell rm -f ${MAIL_DIR}/vanish
continue
--
2.13.3
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 5/7] .travis.yml: Switch to "sudo: false" for faster builds
2017-08-17 17:51 [PATCH 0/7] Travis and test suite improvements Vladimir Panteleev
` (3 preceding siblings ...)
2017-08-17 17:51 ` [PATCH 4/7] test: Fix T050-new.sh on some Travis CI machines Vladimir Panteleev
@ 2017-08-17 17:51 ` Vladimir Panteleev
2017-08-17 17:51 ` [PATCH 6/7] test: Fix T350-crypto.sh on Emacs snapshots Vladimir Panteleev
` (2 subsequent siblings)
7 siblings, 0 replies; 15+ messages in thread
From: Vladimir Panteleev @ 2017-08-17 17:51 UTC (permalink / raw)
To: notmuch
Builds not requiring sudo access run in a container, which will have
better performance and less overhead on the Travis infrastructure.
Use the apt addon to install dependencies instead of explicit apt-get
commands.
---
.travis.yml | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index e297e516..8b71568d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,11 +1,18 @@
language: c
dist: trusty
-sudo: required
+sudo: false
-before_install:
- - sudo apt-get update -qq
- - sudo apt-get install dtach libxapian-dev libgmime-2.6-dev libtalloc-dev python-sphinx gdb gpgsm
+addons:
+ apt:
+ packages:
+ - dtach
+ - libxapian-dev
+ - libgmime-2.6-dev
+ - libtalloc-dev
+ - python-sphinx
+ - gdb
+ - gpgsm
script:
- ./configure
--
2.13.3
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 6/7] test: Fix T350-crypto.sh on Emacs snapshots
2017-08-17 17:51 [PATCH 0/7] Travis and test suite improvements Vladimir Panteleev
` (4 preceding siblings ...)
2017-08-17 17:51 ` [PATCH 5/7] .travis.yml: Switch to "sudo: false" for faster builds Vladimir Panteleev
@ 2017-08-17 17:51 ` Vladimir Panteleev
2017-09-02 0:11 ` [PATCH] test/crypto: remove headers more robustly David Bremner
2017-08-17 17:51 ` [PATCH 7/7] .travis.yml: Test against several Emacs versions Vladimir Panteleev
2017-08-30 23:19 ` [PATCH 0/7] Travis and test suite improvements David Bremner
7 siblings, 1 reply; 15+ messages in thread
From: Vladimir Panteleev @ 2017-08-17 17:51 UTC (permalink / raw)
To: notmuch
The "reply to encrypted message" subtest of T350-crypto.sh was failing
with Emacs snapshots because it assumed the "In-Reply-To" and
"References" headers it attempts to filter out would never be
line-wrapped. This apparently changed in the latest Emacs versions,
which causes the test to fail when ran against them.
* T350-crypto.sh: Unwrap headers before filtering them.
---
test/T350-crypto.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/test/T350-crypto.sh b/test/T350-crypto.sh
index 7dab39a2..69d9b160 100755
--- a/test/T350-crypto.sh
+++ b/test/T350-crypto.sh
@@ -394,6 +394,7 @@ test_expect_equal_json \
test_begin_subtest "reply to encrypted message"
output=$(notmuch reply --decrypt subject:"test encrypted message 002" \
+ | tr '\n' '|' | sed 's/|[[:space:]][[:space:]]*/ /g' | tr '|' '\n' \
| grep -v -e '^In-Reply-To:' -e '^References:')
expected='From: Notmuch Test Suite <test_suite@notmuchmail.org>
Subject: Re: test encrypted message 002
--
2.13.3
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 7/7] .travis.yml: Test against several Emacs versions
2017-08-17 17:51 [PATCH 0/7] Travis and test suite improvements Vladimir Panteleev
` (5 preceding siblings ...)
2017-08-17 17:51 ` [PATCH 6/7] test: Fix T350-crypto.sh on Emacs snapshots Vladimir Panteleev
@ 2017-08-17 17:51 ` Vladimir Panteleev
2017-09-02 0:41 ` David Bremner
2017-08-30 23:19 ` [PATCH 0/7] Travis and test suite improvements David Bremner
7 siblings, 1 reply; 15+ messages in thread
From: Vladimir Panteleev @ 2017-08-17 17:51 UTC (permalink / raw)
To: notmuch
Use an env matrix and Flycheck's emacs-travis project to install and
test against multiple Emacs versions (currently 24.3, 24.5, 25.1, and
the latest development snapshot).
---
.travis.yml | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/.travis.yml b/.travis.yml
index 8b71568d..5ee6a6cc 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,6 +3,12 @@ language: c
dist: trusty
sudo: false
+env:
+ - EMACS_VERSION=24.3
+ - EMACS_VERSION=24.5
+ - EMACS_VERSION=25.1
+ - EMACS_VERSION=snapshot
+
addons:
apt:
packages:
@@ -15,6 +21,12 @@ addons:
- gpgsm
script:
+ # Configure and install Emacs (according to $EMACS_VERSION)
+ - export PATH="$HOME/bin:$PATH"
+ - wget 'https://raw.githubusercontent.com/flycheck/emacs-travis/master/emacs-travis.mk'
+ - make -f emacs-travis.mk install_emacs
+ - emacs --version
+
- ./configure
- make download-test-databases
- make test
--
2.13.3
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH 0/7] Travis and test suite improvements
2017-08-17 17:51 [PATCH 0/7] Travis and test suite improvements Vladimir Panteleev
` (6 preceding siblings ...)
2017-08-17 17:51 ` [PATCH 7/7] .travis.yml: Test against several Emacs versions Vladimir Panteleev
@ 2017-08-30 23:19 ` David Bremner
2017-08-30 23:22 ` David Bremner
7 siblings, 1 reply; 15+ messages in thread
From: David Bremner @ 2017-08-30 23:19 UTC (permalink / raw)
To: Vladimir Panteleev, notmuch
Vladimir Panteleev <notmuch@thecybershadow.net> writes:
> Test more things better on Travis CI, and fix things in the test suite
> that did not run properly on Travis CI.
>
I've pushed the first 5 in the series. I haven't had a chance to review
the last two yet.
d
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 0/7] Travis and test suite improvements
2017-08-30 23:19 ` [PATCH 0/7] Travis and test suite improvements David Bremner
@ 2017-08-30 23:22 ` David Bremner
0 siblings, 0 replies; 15+ messages in thread
From: David Bremner @ 2017-08-30 23:22 UTC (permalink / raw)
To: Vladimir Panteleev, notmuch
David Bremner <david@tethera.net> writes:
> Vladimir Panteleev <notmuch@thecybershadow.net> writes:
>
>> Test more things better on Travis CI, and fix things in the test suite
>> that did not run properly on Travis CI.
>>
>
> I've pushed the first 5 in the series. I haven't had a chance to review
> the last two yet.
>
> d
Ah right now I remember. I had to amend 4/7 due to the renaming of
notmuch_database_add_message to notmuch_database_index_file. Although
the old name still exists as a wrapper, it seems to cause problems for
gdb to set the break on the wrapper function. Hopefully this still fixes
the problem on travis.
d
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH] test/crypto: remove headers more robustly
2017-08-17 17:51 ` [PATCH 6/7] test: Fix T350-crypto.sh on Emacs snapshots Vladimir Panteleev
@ 2017-09-02 0:11 ` David Bremner
2017-09-02 19:48 ` Tomi Ollila
0 siblings, 1 reply; 15+ messages in thread
From: David Bremner @ 2017-09-02 0:11 UTC (permalink / raw)
To: Vladimir Panteleev, notmuch
In [1], Vladimir Panteleev observed that the In-Reply-To and
References headers could be wrapped in the 'default' output format of
notmuch-reply, depending on the version of Emacs creating the
message. In my own experiments notmuch-reply sometimes wraps headers
with only one message-id if that message-id is long enough. However it
happens, this causes the previous approach using grep to fail.
Since I found the proposed unwrapping shell fragment in [1] a bit hard
to follow, I decided to write a little python script instead.
[1] id:20170817175145.3204-7-notmuch@thecybershadow.net
---
test/T350-crypto.sh | 2 +-
test/test-lib.sh | 11 +++++++++++
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/test/T350-crypto.sh b/test/T350-crypto.sh
index 7dab39a2..fd950952 100755
--- a/test/T350-crypto.sh
+++ b/test/T350-crypto.sh
@@ -394,7 +394,7 @@ test_expect_equal_json \
test_begin_subtest "reply to encrypted message"
output=$(notmuch reply --decrypt subject:"test encrypted message 002" \
- | grep -v -e '^In-Reply-To:' -e '^References:')
+ | notmuch_reply_sanitize_refs)
expected='From: Notmuch Test Suite <test_suite@notmuchmail.org>
Subject: Re: test encrypted message 002
diff --git a/test/test-lib.sh b/test/test-lib.sh
index d2b2a47f..4716f649 100644
--- a/test/test-lib.sh
+++ b/test/test-lib.sh
@@ -507,6 +507,17 @@ NOTMUCH_DUMP_TAGS ()
notmuch dump --include=tags "${@}" | sed '/^#/d' | sort
}
+notmuch_reply_sanitize_refs ()
+{
+ $NOTMUCH_PYTHON -c "
+import email,sys
+msg=email.message_from_file(sys.stdin)
+del msg['in-reply-to']
+del msg['references']
+print(msg.as_string(False))
+"
+}
+
notmuch_search_sanitize ()
{
perl -pe 's/("?thread"?: ?)("?)................("?)/\1\2XXX\3/'
--
2.14.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH 7/7] .travis.yml: Test against several Emacs versions
2017-08-17 17:51 ` [PATCH 7/7] .travis.yml: Test against several Emacs versions Vladimir Panteleev
@ 2017-09-02 0:41 ` David Bremner
2017-09-04 21:31 ` Vladimir Panteleev
0 siblings, 1 reply; 15+ messages in thread
From: David Bremner @ 2017-09-02 0:41 UTC (permalink / raw)
To: Vladimir Panteleev, notmuch
Vladimir Panteleev <notmuch@thecybershadow.net> writes:
> +env:
> + - EMACS_VERSION=24.3
> + - EMACS_VERSION=24.5
> + - EMACS_VERSION=25.1
> + - EMACS_VERSION=snapshot
> +
I take it travis doesn't object to building 4 versions of emacs from
scratch? How long does that take?
> script:
> + # Configure and install Emacs (according to $EMACS_VERSION)
> + - export PATH="$HOME/bin:$PATH"
> + - wget 'https://raw.githubusercontent.com/flycheck/emacs-travis/master/emacs-travis.mk'
> + - make -f emacs-travis.mk install_emacs
> + - emacs --version
> +
I'm not very happy about downloading and running code from a third party
during our test runs. I guess we could embed a copy, althought that has
it's downsides as well.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] test/crypto: remove headers more robustly
2017-09-02 0:11 ` [PATCH] test/crypto: remove headers more robustly David Bremner
@ 2017-09-02 19:48 ` Tomi Ollila
2017-09-03 11:13 ` David Bremner
0 siblings, 1 reply; 15+ messages in thread
From: Tomi Ollila @ 2017-09-02 19:48 UTC (permalink / raw)
To: David Bremner, Vladimir Panteleev, notmuch
On Fri, Sep 01 2017, David Bremner wrote:
> In [1], Vladimir Panteleev observed that the In-Reply-To and
> References headers could be wrapped in the 'default' output format of
> notmuch-reply, depending on the version of Emacs creating the
> message. In my own experiments notmuch-reply sometimes wraps headers
> with only one message-id if that message-id is long enough. However it
> happens, this causes the previous approach using grep to fail.
we could (also) make emacs think it has wider than 80 characters to fit on
one line...
> Since I found the proposed unwrapping shell fragment in [1] a bit hard
> to follow, I decided to write a little python script instead.
There was nothing hard in that shell construct ;), but I also thought some
alternative solutions (one in awk and one in perl)
How 'bout
drop_email_headers ()
{
$NOTMUCH_PYTHON -c 'import email, sys
msg = email.message_from_file(sys.stdin)
for hdr in sys.argv: msg.pop(hdr, None)
print(msg.as_string(False))'
}
and then ... | drop_email_headers In-Reply-To References
>
> [1] id:20170817175145.3204-7-notmuch@thecybershadow.net
> ---
> test/T350-crypto.sh | 2 +-
> test/test-lib.sh | 11 +++++++++++
> 2 files changed, 12 insertions(+), 1 deletion(-)
>
> diff --git a/test/T350-crypto.sh b/test/T350-crypto.sh
> index 7dab39a2..fd950952 100755
> --- a/test/T350-crypto.sh
> +++ b/test/T350-crypto.sh
> @@ -394,7 +394,7 @@ test_expect_equal_json \
>
> test_begin_subtest "reply to encrypted message"
> output=$(notmuch reply --decrypt subject:"test encrypted message 002" \
> - | grep -v -e '^In-Reply-To:' -e '^References:')
> + | notmuch_reply_sanitize_refs)
> expected='From: Notmuch Test Suite <test_suite@notmuchmail.org>
> Subject: Re: test encrypted message 002
>
> diff --git a/test/test-lib.sh b/test/test-lib.sh
> index d2b2a47f..4716f649 100644
> --- a/test/test-lib.sh
> +++ b/test/test-lib.sh
> @@ -507,6 +507,17 @@ NOTMUCH_DUMP_TAGS ()
> notmuch dump --include=tags "${@}" | sed '/^#/d' | sort
> }
>
> +notmuch_reply_sanitize_refs ()
> +{
> + $NOTMUCH_PYTHON -c "
> +import email,sys
> +msg=email.message_from_file(sys.stdin)
> +del msg['in-reply-to']
> +del msg['references']
> +print(msg.as_string(False))
> +"
> +}
> +
> notmuch_search_sanitize ()
> {
> perl -pe 's/("?thread"?: ?)("?)................("?)/\1\2XXX\3/'
> --
> 2.14.1
>
> _______________________________________________
> notmuch mailing list
> notmuch@notmuchmail.org
> https://notmuchmail.org/mailman/listinfo/notmuch
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] test/crypto: remove headers more robustly
2017-09-02 19:48 ` Tomi Ollila
@ 2017-09-03 11:13 ` David Bremner
0 siblings, 0 replies; 15+ messages in thread
From: David Bremner @ 2017-09-03 11:13 UTC (permalink / raw)
To: Tomi Ollila, Vladimir Panteleev, notmuch
Tomi Ollila <tomi.ollila@iki.fi> writes:
> On Fri, Sep 01 2017, David Bremner wrote:
>
>> In [1], Vladimir Panteleev observed that the In-Reply-To and
>> References headers could be wrapped in the 'default' output format of
>> notmuch-reply, depending on the version of Emacs creating the
>> message. In my own experiments notmuch-reply sometimes wraps headers
>> with only one message-id if that message-id is long enough. However it
>> happens, this causes the previous approach using grep to fail.
>
> we could (also) make emacs think it has wider than 80 characters to fit on
> one line...
>
>> Since I found the proposed unwrapping shell fragment in [1] a bit hard
>> to follow, I decided to write a little python script instead.
>
> There was nothing hard in that shell construct ;), but I also thought some
> alternative solutions (one in awk and one in perl)
>
> How 'bout
>
> drop_email_headers ()
> {
> $NOTMUCH_PYTHON -c 'import email, sys
> msg = email.message_from_file(sys.stdin)
> for hdr in sys.argv: msg.pop(hdr, None)
> print(msg.as_string(False))'
> }
>
> and then ... | drop_email_headers In-Reply-To References
I pushed something like this. 'pop' doesn't seem to exist? Also I needed
to pass $* in to the python script. Maybe that should be "${@}", but
there really should not be spaces in header names.
d
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 7/7] .travis.yml: Test against several Emacs versions
2017-09-02 0:41 ` David Bremner
@ 2017-09-04 21:31 ` Vladimir Panteleev
0 siblings, 0 replies; 15+ messages in thread
From: Vladimir Panteleev @ 2017-09-04 21:31 UTC (permalink / raw)
To: David Bremner, notmuch
On 2017-09-02 00:41, David Bremner wrote:
> I take it travis doesn't object to building 4 versions of emacs from
> scratch?
I don't know why they would. There are many open-source projects with
much higher computational demands using Travis' free service. There are
also many projects doing the exact thing proposed in this patch:
https://github.com/search?utf8=%E2%9C%93&q=travis+EMACS_VERSION+language%3AYAML&type=Code
> How long does that take?
About 2-4 minutes for the tagged releases and 6 minutes for the
snapshot. You can see the times yourself in the build logs for the
Travis results of my fork:
https://travis-ci.org/CyberShadow/notmuch
The figure you're looking for is the execution time of the "make -f
emacs-travis.mk install_emacs" command, displayed on the right-hand side
in the log.
> I'm not very happy about downloading and running code from a third party
> during our test runs.
Why do you think so?
Consider:
- You are already relying on a third-party here (Travis). They run a lot
of code specific to their testing platform on their systems.
- The code (emacs-travis.mk) is specific to Travis. It is not part of
the notmuch test suite, just the Travis configuration which runs it.
- Using emacs-travis.mk in this manner is how many Emacs packages run
their tests:
https://github.com/search?p=1&q=emacs-travis.mk+language%3AYAML&type=Code&utf8=%E2%9C%93
--
Best regards,
Vladimir
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2017-09-04 21:31 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-17 17:51 [PATCH 0/7] Travis and test suite improvements Vladimir Panteleev
2017-08-17 17:51 ` [PATCH 1/7] .travis.yml: Invoke `make download-test-databases' before running tests Vladimir Panteleev
2017-08-17 17:51 ` [PATCH 2/7] .travis.yml: Add gdb and gpgsm dependencies Vladimir Panteleev
2017-08-17 17:51 ` [PATCH 3/7] .travis.yml: Replace manual zlib installation with "dist: trusty" Vladimir Panteleev
2017-08-17 17:51 ` [PATCH 4/7] test: Fix T050-new.sh on some Travis CI machines Vladimir Panteleev
2017-08-17 17:51 ` [PATCH 5/7] .travis.yml: Switch to "sudo: false" for faster builds Vladimir Panteleev
2017-08-17 17:51 ` [PATCH 6/7] test: Fix T350-crypto.sh on Emacs snapshots Vladimir Panteleev
2017-09-02 0:11 ` [PATCH] test/crypto: remove headers more robustly David Bremner
2017-09-02 19:48 ` Tomi Ollila
2017-09-03 11:13 ` David Bremner
2017-08-17 17:51 ` [PATCH 7/7] .travis.yml: Test against several Emacs versions Vladimir Panteleev
2017-09-02 0:41 ` David Bremner
2017-09-04 21:31 ` Vladimir Panteleev
2017-08-30 23:19 ` [PATCH 0/7] Travis and test suite improvements David Bremner
2017-08-30 23:22 ` David Bremner
Code repositories for project(s) associated with this public inbox
https://yhetil.org/notmuch.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).