summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorP. J. McDermott <pj@pehjota.net>2017-07-23 12:50:46 (EDT)
committer P. J. McDermott <pj@pehjota.net>2017-07-23 12:50:46 (EDT)
commitedbb7b4baf03059479200c98d782496dba333bbb (patch)
treedd8b029e67a8d4b573e093b2a9870956b40a7a5e
parent70ec66d3c418db2001e5d95bcf502171fb1811be (diff)
tests/aux/init.sh: New file
-rw-r--r--tests/aux/init.sh57
-rw-r--r--tests/local.mk3
2 files changed, 60 insertions, 0 deletions
diff --git a/tests/aux/init.sh b/tests/aux/init.sh
new file mode 100644
index 0000000..16353a2
--- /dev/null
+++ b/tests/aux/init.sh
@@ -0,0 +1,57 @@
+# This file is part of the ProteanOS Archive Manager.
+#
+# The ProteanOS Archive Manager is free software: you can redistribute
+# it and/or modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# The ProteanOS Archive Manager is distributed in the hope that it
+# will be useful, but WITHOUT ANY WARRANTY; without even the implied
+# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with the ProteanOS Archive Manager. If not, see
+# <http://www.gnu.org/licenses/>.
+
+set -eu
+
+. tests/aux/defs.sh
+# Defines:
+# * abs_srcdir: Absolute path to tests/aux/ (used for PATH)
+# * abs_top_builddir: Absolute path to top build directory (used to find
+# pro-archman and make test directory)
+
+init()
+{
+ # Find pro-archman executable.
+ PRO_ARCHMAN="${abs_top_builddir}/pro-archman"
+ if ! [ -x "${PRO_ARCHMAN}" ]; then
+ printf 'ERROR: %s: not found\n' "${PRO_ARCHMAN}" >&2
+ exit 1
+ fi
+
+ # Add aux directory in source tree to PATH for "." inclusions.
+ PATH="${abs_srcdir}:${PATH}"
+
+ # Clean up, make, and change to test directory.
+ testdir="tests/${0##*/}"
+ testdir="${abs_top_builddir}/${testdir%.*}.dir/"
+ rm -Rf "${testdir}"
+ mkdir "${testdir}"
+ cd "${testdir}"
+
+ # Set EXIT trap action to clean up test directory.
+ trap atexit EXIT
+
+ return 0
+}
+
+atexit()
+{
+ # Clean up test directory.
+ cd "${abs_top_builddir}"
+ rm -Rf "${testdir}"
+}
+
+init
diff --git a/tests/local.mk b/tests/local.mk
index 88eaec4..f633b44 100644
--- a/tests/local.mk
+++ b/tests/local.mk
@@ -1,2 +1,5 @@
TESTS = \
%reldir%/version.sh
+
+EXTRA_DIST += \
+ tests/aux/init.sh