test: add a script to figure out source and build directories
authorJani Nikula <jani@nikula.org>
Mon, 25 Sep 2017 20:38:22 +0000 (23:38 +0300)
committerDavid Bremner <david@tethera.net>
Fri, 20 Oct 2017 22:53:55 +0000 (19:53 -0300)
Expect the tests to be run somewhere in the build directory
hierarchy. Allow for source and build directories to be passed through
the environment.

test/export-dirs.sh [new file with mode: 0644]

diff --git a/test/export-dirs.sh b/test/export-dirs.sh
new file mode 100644 (file)
index 0000000..0578b1e
--- /dev/null
@@ -0,0 +1,32 @@
+# Source this script to set and export NOTMUCH_SRCDIR and
+# NOTMUCH_BUILDDIR.
+#
+# For this to work, always have current directory somewhere within the
+# build directory hierarchy, and run the script sourcing this script
+# using a path (relative or absolute) to the source directory.
+
+if [[ -z "${NOTMUCH_SRCDIR}" ]]; then
+       export NOTMUCH_SRCDIR="$(cd "$(dirname "$0")"/.. && pwd)"
+fi
+
+find_builddir()
+{
+       local dir="$1"
+
+       while [[ -n "$dir" ]] && [[ "$dir" != "/" ]]; do
+               if [[ -x "$dir/notmuch" ]] && [[ ! -d "$dir/notmuch" ]]; then
+                       echo "$dir"
+                       break
+               fi
+               dir="$(dirname "$dir")"
+       done
+}
+
+if [[ -z "${NOTMUCH_BUILDDIR}" ]]; then
+       export NOTMUCH_BUILDDIR="$(find_builddir "$(pwd)")"
+
+       if [[ -z "${NOTMUCH_BUILDDIR}" ]]; then
+               echo "Run tests in a subdir of built notmuch tree." >&2
+               exit 1
+       fi
+fi