summaryrefslogtreecommitdiffstats
path: root/tests/aux/init.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/aux/init.sh')
-rw-r--r--tests/aux/init.sh57
1 files changed, 57 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