Browse Source

test: Automatically discover CMake build directory

Look at the project root, and all directories directly below it and
pick the directory with the newest CMakeCache.txt file.

Gbp-Dch: ignore
debian/1.8.y
Julian Andres Klode 6 years ago
parent
commit
61fef4ddbe
  1. 22
      test/integration/framework
  2. 6
      test/integration/run-tests

22
test/integration/framework

@ -257,6 +257,24 @@ escape_shell() {
echo "$@" | sed -e "s#'#'\"'\"'#g"
}
find_project_binary_dir() {
local TESTDIRECTORY="$(readlink -f "$(dirname $0)")"
if [ -z "$PROJECT_BINARY_DIR" ]; then
PROJECT_BINARY_DIR=
for dir in ${TESTDIRECTORY}/../../ ${TESTDIRECTORY}/../../*; do
test -e "$dir/CMakeCache.txt" || continue
if [ -z "$PROJECT_BINARY_DIR" ] ||
[ "$dir/CMakeCache.txt" -nt "$PROJECT_BINARY_DIR/CMakeCache.txt" ]; then
PROJECT_BINARY_DIR="$dir"
fi
done
if [ -z "$PROJECT_BINARY_DIR" ]; then
echo "Cannot find build directory, you might want to set PROJECT_BINARY_DIR" >&2
exit 1
fi
export PROJECT_BINARY_DIR
fi
}
setupenvironment() {
# privilege dropping and testing doesn't work if /tmp isn't world-writeable (as e.g. with libpam-tmpdir)
if [ -n "$TMPDIR" ] && [ "$(id -u)" = '0' ] && [ "$(stat --format '%a' "$TMPDIR")" != '1777' ]; then
@ -281,9 +299,11 @@ setupenvironment() {
fi
TESTDIRECTORY="$(readlink -f "$(dirname $0)")"
# Find the newest build directory (sets PROJECT_BINARY_DIR)
find_project_binary_dir
# allow overriding the default BUILDDIR location
SOURCEDIRECTORY="${APT_INTEGRATION_TESTS_SOURCE_DIR:-"${TESTDIRECTORY}/../../"}"
BUILDDIRECTORY="${APT_INTEGRATION_TESTS_BUILD_DIR:-"${TESTDIRECTORY}/../../build/cmdline"}"
BUILDDIRECTORY="${APT_INTEGRATION_TESTS_BUILD_DIR:-"${PROJECT_BINARY_DIR}/cmdline"}"
LIBRARYPATH="${APT_INTEGRATION_TESTS_LIBRARY_PATH:-"${BUILDDIRECTORY}/../apt-pkg"}"
METHODSDIR="${APT_INTEGRATION_TESTS_METHODS_DIR:-"${BUILDDIRECTORY}/../methods"}"
APTHELPERBINDIR="${APT_INTEGRATION_TESTS_LIBEXEC_DIR:-"${BUILDDIRECTORY}"}"

6
test/integration/run-tests

@ -1,4 +1,10 @@
#!/bin/sh
TESTDIR="$(readlink -f "$(dirname "$0")")"
. "$TESTDIR/framework"
find_project_binary_dir
set -e
TESTTORUN=''

Loading…
Cancel
Save