From: Tomi Ollila <tomi.ollila@iki.fi>
To: mp39590@gmail.com, notmuch@notmuchmail.org
Subject: Re: [PATCH] tests: add compatibility layer
Date: Sat, 31 Dec 2016 17:17:41 +0200 [thread overview]
Message-ID: <m260m0i0ve.fsf@guru.guru-group.fi> (raw)
In-Reply-To: <20161222093120.41803-1-mp39590@gmail.com>
On Thu, Dec 22 2016, mp39590@gmail.com wrote:
> From: Mikhail <mp39590@gmail.com>
>
> Make test-lib-common.sh load test-lib-<$PLATFORM>.sh to create
> additional shim for platform specifics.
>
> Use test-lib-FREEBSD.sh to call GNU utilities instead of native ones.
I've been slow to respond, mostly busy, partly checking some freebsd
facts...
The patch is mostly good, but there are a few issues i am going to
mention a bit later -- now I just have few minutes...
IIRC you're a freebsd port maintainer and would like to have more
certainty that every new test patch doesn't break your test.
In general we desire more portability overall e.g. things work on
linux, *bsd, macos, solaris...
But, for now I'd like you to test the following script which
I named `make-test-freesd.sh` (well, that could also work on many other
OSses) and tell why it would not work ;) ... in that there is one hint
how the patch should be improved :D
run it instead of `gmake test` in notmuch source directory.
Tomi
--8<----8<----8<----8<----8<----8<----8<----8<----8<----8<--
#!/usr/bin/env bash
set -euf -o posix
SHELL=`command -v bash`
export SHELL
mkwrp () {
command -v "$2" >/dev/null || return 0
eval "$1 () { $2 \"\$@\"; }"
export -f $1
}
mkwrp date gdate
mkwrp base64 gbase64
mkwrp gdb "$NOTMUCH_GDB"
mkwrp wc gwc
mkwrp sha256sum gsha256sum
set -x
exec gmake test
--8<----8<----8<----8<----8<----8<----8<----8<----8<--
> ---
> configure | 3 +++
> test/README | 6 ++++++
> test/test-lib-FREEBSD.sh | 8 ++++++++
> test/test-lib-common.sh | 5 +++++
> 4 files changed, 22 insertions(+)
> create mode 100644 test/test-lib-FREEBSD.sh
>
> diff --git a/configure b/configure
> index 72db26df..7ba9b9eb 100755
> --- a/configure
> +++ b/configure
> @@ -1203,6 +1203,9 @@ NOTMUCH_PYTHON=${python}
> # Are the ruby development files (and ruby) available? If not skip
> # building/testing ruby bindings.
> NOTMUCH_HAVE_RUBY_DEV=${have_ruby_dev}
> +
> +# Platform we are run on
> +PLATFORM=${platform}
> EOF
>
> # Finally, after everything configured, inform the user how to continue.
> diff --git a/test/README b/test/README
> index 104a120e..094e1d33 100644
> --- a/test/README
> +++ b/test/README
> @@ -33,6 +33,12 @@ chosen directory to your PATH before running the tests.
>
> e.g. env PATH=/opt/gnu/bin:$PATH make test
>
> +For FreeBSD you will need to install coreutils, which provides GNU
> +versions of basic utils like 'date' or 'wc'. Also you will need to
> +install latest gdb from ports or packages and provide path to it in
> +BSD_GDB variable before executing the tests, native FreeBSD gdb will not
> +work.
> +
> Running Tests
> -------------
> The easiest way to run tests is to say "make test", (or simply run the
> diff --git a/test/test-lib-FREEBSD.sh b/test/test-lib-FREEBSD.sh
> new file mode 100644
> index 00000000..24079689
> --- /dev/null
> +++ b/test/test-lib-FREEBSD.sh
> @@ -0,0 +1,8 @@
> +# Use GNU Coreutils instead of a native BSD utils
> +
> +date () { gdate "$@"; }
> +base64 () { gbase64 "$@"; }
> +gdb () { $BSD_GDB "$@"; }
> +wc () { gwc "$@"; }
> +sed () { gsed "$@"; }
> +sha256sum () { gsha256sum "$@"; }
> diff --git a/test/test-lib-common.sh b/test/test-lib-common.sh
> index 03ef1d2d..1c8d7f6e 100644
> --- a/test/test-lib-common.sh
> +++ b/test/test-lib-common.sh
> @@ -66,6 +66,11 @@ export LD_LIBRARY_PATH
> # configure output
> . $notmuch_path/sh.config || exit 1
>
> +# load OS specifics
> +if [ -e ./test-lib-$PLATFORM.sh ]; then
> + . ./test-lib-$PLATFORM.sh
> +fi
> +
> if test -n "$valgrind"
> then
> make_symlink () {
> --
> 2.11.0
>
> _______________________________________________
> notmuch mailing list
> notmuch@notmuchmail.org
> https://notmuchmail.org/mailman/listinfo/notmuch
next prev parent reply other threads:[~2016-12-31 15:17 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-20 19:47 [PATCH] tests: add compatibility layer mp39590
2016-12-20 22:24 ` David Bremner
2016-12-21 5:12 ` Tomi Ollila
2016-12-21 14:56 ` Mikhail
2016-12-22 9:31 ` mp39590
2016-12-31 11:03 ` David Bremner
2017-01-02 13:57 ` mp39590
2017-01-03 15:48 ` Tomi Ollila
2017-01-03 15:52 ` Tomi Ollila
2017-01-03 17:21 ` Tomi Ollila
2017-01-04 1:57 ` Mikhail
2016-12-31 15:17 ` Tomi Ollila [this message]
-- strict thread matches above, loose matches on Subject: below --
2017-03-09 13:32 David Bremner
2017-03-09 15:47 ` Tomi Ollila
2017-03-24 20:33 ` Mikhail
2017-03-25 11:10 ` David Bremner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://notmuchmail.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m260m0i0ve.fsf@guru.guru-group.fi \
--to=tomi.ollila@iki.fi \
--cc=mp39590@gmail.com \
--cc=notmuch@notmuchmail.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).