#!/bin/sh
set -e

SOURCE_DIR="$(pwd)"
if [ -z "$AUTOPKGTEST_TMP" ]; then
   BUILD_DIR=''
   cleanup() {
      if [ -n "$BUILD_DIR" ]; then cd /; rm -rf -- "$BUILD_DIR"; fi
      BUILD_DIR=''
   }
   trap 'cleanup' 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM
   BUILD_DIR="$(mktemp -d)"
else
   BUILD_DIR="$AUTOPKGTEST_TMP"
fi

if [ ! -e "${BUILD_DIR}/CMakeCache.txt" ]; then
   cmake -S "$SOURCE_DIR" -B "$BUILD_DIR" -DUSE_SYSTEM_APTPKG=ON -DWITH_DOC=OFF -DUSE_NLS=OFF
fi

make -C "${BUILD_DIR}/test/interactive-helper"

# skip some tests that never passed on Kali CI
if [ "$GITLAB_CI" = true ]; then
   cat << EOF >> ${SOURCE_DIR}/test/integration/kali.skip-tests
test-kernel-helper-autoremove
EOF
fi

# skip some tests that don't pass due to Kali's changes
cat << EOF >> ${SOURCE_DIR}/test/integration/kali.skip-tests
test-apt-get-update-sourceslist-warning
EOF

# run tests against the installed apt, use "env -i" to ensure
# the host env does not pollute our environment
env -i \
APT_INTEGRATION_TESTS_SOURCE_DIR="${SOURCE_DIR}" \
APT_INTEGRATION_TESTS_BUILD_DIR="${BUILD_DIR}" \
APT_INTEGRATION_TESTS_METHODS_DIR=/usr/lib/apt/methods \
APT_INTEGRATION_TESTS_LIBEXEC_DIR=/usr/lib/apt/ \
APT_INTEGRATION_TESTS_INTERNAL_SOLVER=/usr/lib/apt/solvers/apt \
APT_INTEGRATION_TESTS_DUMP_SOLVER=/usr/lib/apt/solvers/dump \
APT_INTEGRATION_TESTS_INTERNAL_PLANNER=/usr/lib/apt/planners/apt \
APT_INTEGRATION_TESTS_FTPARCHIVE_BIN_DIR=/usr/bin \
APT_INTEGRATION_TESTS_CMDLINE_BIN_DIR=/usr/bin \
APT_INTEGRATION_TESTS_LIBRARY_PATH=/dev/null/does/not/exist \
APT_INTEGRATION_TESTS_ARTIFACTS_DIR="${AUTOPKGTEST_ARTIFACTS}" \
"${SOURCE_DIR}/test/integration/run-tests" -q --skip kali.skip-tests
