On Thu, Mar 09 2017, David Bremner <david@tethera.net> 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. > > - amended by db following Tomi's suggestions > --- > > I haven't tested this, except to verify it doesn't crash under GNU/Linux I cannot test as I will not pollute my purish Frisbee KVM image with coreutils package -- I could play with second image but I', too lazy to do so. Anyway, it looks ok to me. Tomi > > configure | 3 +++ > test/README | 11 +++++++++++ > test/test-lib-FREEBSD.sh | 9 +++++++++ > test/test-lib-common.sh | 5 +++++ > 4 files changed, 28 insertions(+) > create mode 100644 test/test-lib-FREEBSD.sh > > diff --git a/configure b/configure > index fa77eb8f..eb452a12 100755 > --- a/configure > +++ b/configure > @@ -1186,6 +1186,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..ae22d6e0 100644 > --- a/test/README > +++ b/test/README > @@ -33,6 +33,17 @@ chosen directory to your PATH before running the tests. > > 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 > ------------- > 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..d1840b56 > --- /dev/null > +++ b/test/test-lib-FREEBSD.sh > @@ -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 > diff --git a/test/test-lib-common.sh b/test/test-lib-common.sh > index a96cfbeb..ef409171 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 || exit 1 > +fi > + > if test -n "$valgrind" > then > make_symlink () { > -- > 2.11.0 > > _______________________________________________ > notmuch mailing list > notmuch@notmuchmail.org > https://notmuchmail.org/mailman/listinfo/notmuch