aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMikhail <mp39590@gmail.com>2017-03-09 09:32:43 -0400
committerDavid Bremner <david@tethera.net>2017-03-25 07:56:52 -0300
commit9b7dbed58ebd3aeee16b044fdffda6b39e90643e (patch)
tree25f919a885e83e43954ef085ececbd849463f447 /test
parente1ddd27968673e6785300e739f5257b83841fb97 (diff)
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
Diffstat (limited to 'test')
-rw-r--r--test/README11
-rw-r--r--test/test-lib-FREEBSD.sh9
-rw-r--r--test/test-lib-common.sh5
3 files changed, 25 insertions, 0 deletions
diff --git a/test/README b/test/README
index dcd05237..f2499bce 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 () {