tests: add compatibility layer

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.

- amended by db following Tomi's suggestions
This commit is contained in:
Mikhail 2017-03-09 09:32:43 -04:00 committed by David Bremner
parent e1ddd27968
commit 9b7dbed58e
4 changed files with 28 additions and 0 deletions

3
configure vendored
View file

@ -1199,6 +1199,9 @@ NOTMUCH_PYTHON=${python}
# Are the ruby development files (and ruby) available? If not skip # Are the ruby development files (and ruby) available? If not skip
# building/testing ruby bindings. # building/testing ruby bindings.
NOTMUCH_HAVE_RUBY_DEV=${have_ruby_dev} NOTMUCH_HAVE_RUBY_DEV=${have_ruby_dev}
# Platform we are run on
PLATFORM=${platform}
EOF EOF
# Finally, after everything configured, inform the user how to continue. # Finally, after everything configured, inform the user how to continue.

View file

@ -33,6 +33,17 @@ chosen directory to your PATH before running the tests.
e.g. env PATH=/opt/gnu/bin:$PATH make test e.g. env PATH=/opt/gnu/bin:$PATH make test
For FreeBSD you need to install latest gdb from ports or packages and
provide path to it in TEST_GDB environment variable before executing
the tests, native FreeBSD gdb does not not work. If you install
coreutils, which provides GNU versions of basic utils like 'date' and
'base64' on FreeBSD, the test suite will use these instead of the
native ones. This provides robustness against portability issues with
these system tools. Most often the tests are written, reviewed and
tested on Linux system so such portability issues arise from time to
time.
Running Tests Running Tests
------------- -------------
The easiest way to run tests is to say "make test", (or simply run the The easiest way to run tests is to say "make test", (or simply run the

9
test/test-lib-FREEBSD.sh Normal file
View file

@ -0,0 +1,9 @@
# If present, use GNU Coreutils instead of a native BSD utils
if command -v gdate >/dev/null
then
date () { gdate "$@"; }
base64 () { gbase64 "$@"; }
wc () { gwc "$@"; }
sed () { gsed "$@"; }
sha256sum () { gsha256sum "$@"; }
fi

View file

@ -66,6 +66,11 @@ export LD_LIBRARY_PATH
# configure output # configure output
. $notmuch_path/sh.config || exit 1 . $notmuch_path/sh.config || exit 1
# load OS specifics
if [ -e ./test-lib-$PLATFORM.sh ]; then
. ./test-lib-$PLATFORM.sh || exit 1
fi
if test -n "$valgrind" if test -n "$valgrind"
then then
make_symlink () { make_symlink () {