File: run-tests

package info (click to toggle)
crowdsec 1.4.6-10.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 18,500 kB
  • sloc: sh: 2,870; makefile: 386; python: 74
file content (54 lines) | stat: -rwxr-xr-x 1,552 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/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"
    rm -f "${LOCAL_DIR}/var/lib/coverage/*"
    mkdir -p "${LOCAL_DIR}/var/lib/coverage"
fi

dump_backend="$(cat "${LOCAL_INIT_DIR}/.backend")"
if [[ "${DB_BACKEND}" != "${dump_backend}" ]]; then
    die "Can't run with backend '${DB_BACKEND}' because the test data was build 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}/dyn-bats"
    "${TEST_DIR}/lib/bats-core/bin/bats" \
        --jobs 1 \
        --timing \
        --print-output-on-failure \
        "${TEST_DIR}/bats" "${TEST_DIR}/dyn-bats"
fi

if [[ -n "${TEST_COVERAGE}" ]]; then
    # empty files just to avoid merge errors
    touch "${LOCAL_DIR}"/var/lib/coverage/crowdsec-
    touch "${LOCAL_DIR}"/var/lib/coverage/cscli-
    gocovmerge "${LOCAL_DIR}"/var/lib/coverage/crowdsec-* > "${LOCAL_DIR}/var/lib/coverage/coverage-crowdsec.out"
    gocovmerge "${LOCAL_DIR}"/var/lib/coverage/cscli-* > "${LOCAL_DIR}/var/lib/coverage/coverage-cscli.out"
fi