test: add a script to figure out source and build directories

Expect the tests to be run somewhere in the build directory
hierarchy. Allow for source and build directories to be passed through
the environment.
This commit is contained in:
Jani Nikula 2017-09-25 23:38:22 +03:00 committed by David Bremner
parent e1bd4f2363
commit 1f3c114f08

32
test/export-dirs.sh Normal file
View file

@ -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