crowdsec/test/run-tests

46 lines
1.1 KiB
Bash
Executable file

#!/usr/bin/env bash
set -eu
die() {
echo >&2 "$@"
exit 1
}
# shellcheck disable=SC1007
TEST_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
# shellcheck source=./.environment.sh
. "$TEST_DIR/.environment.sh"
"$TEST_DIR/bin/check-requirements"
echo "Running tests..."
echo "DB_BACKEND: $DB_BACKEND"
if [[ -z "$TEST_COVERAGE" ]]; then
echo "Coverage report: no"
else
echo "Coverage report: yes"
fi
[[ -f "$LOCAL_INIT_DIR/.lock" ]] && die "init data is locked: are you doing some manual test? if so, please finish what you are doing, run 'instance-data unlock' and retry"
dump_backend="$(cat "$LOCAL_INIT_DIR/.backend")"
if [[ "$DB_BACKEND" != "$dump_backend" ]]; then
die "Can't run with backend '$DB_BACKEND' because 'make bats-fixture' was ran with '$dump_backend'"
fi
if [[ $# -ge 1 ]]; then
echo "test files: $*"
"$TEST_DIR/lib/bats-core/bin/bats" \
--jobs 1 \
--timing \
--print-output-on-failure \
"$@"
else
echo "test files: $TEST_DIR/bats"
"$TEST_DIR/lib/bats-core/bin/bats" \
--jobs 1 \
--timing \
--print-output-on-failure \
"$TEST_DIR/bats"
fi