diff options
Diffstat (limited to 'tests/aux/init.sh')
-rw-r--r-- | tests/aux/init.sh | 57 |
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 |