54 lines
1.2 KiB
Plaintext
54 lines
1.2 KiB
Plaintext
|
#!/bin/sh
|
||
|
|
||
|
set -eu
|
||
|
|
||
|
# shellcheck disable=SC1007
|
||
|
TEST_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
|
||
|
# shellcheck source=./.environment.sh
|
||
|
. "${TEST_DIR}/.environment.sh"
|
||
|
|
||
|
CSCLI="${BIN_DIR}/cscli"
|
||
|
cscli() {
|
||
|
"${BIN_DIR}/cscli" "$@"
|
||
|
}
|
||
|
|
||
|
CROWDSEC="${BIN_DIR}/crowdsec"
|
||
|
|
||
|
"${TEST_DIR}/instance-data" load
|
||
|
|
||
|
hubdir="${LOCAL_DIR}/hub-tests"
|
||
|
git clone --depth 1 https://github.com/crowdsecurity/hub.git "${hubdir}" >/dev/null 2>&1 || (cd "${hubdir}"; git pull)
|
||
|
|
||
|
HUBTESTS_BATS="${TEST_DIR}/dyn-bats/99_hub.bats"
|
||
|
|
||
|
cat << EOT > "${HUBTESTS_BATS}"
|
||
|
set -u
|
||
|
|
||
|
setup_file() {
|
||
|
load "../lib/setup_file.sh" >&3 2>&1
|
||
|
}
|
||
|
|
||
|
teardown_file() {
|
||
|
load "../lib/teardown_file.sh" >&3 2>&1
|
||
|
}
|
||
|
|
||
|
setup() {
|
||
|
load "../lib/setup.sh"
|
||
|
}
|
||
|
|
||
|
EOT
|
||
|
|
||
|
echo "Generating hub tests..."
|
||
|
|
||
|
for testname in $("${CSCLI}" --crowdsec "${CROWDSEC}" --cscli "${CSCLI}" hubtest --hub "${hubdir}" list -o json | grep -v NAME | grep -v -- '-------' | awk '{print $1}'); do
|
||
|
cat << EOT >> "${HUBTESTS_BATS}"
|
||
|
|
||
|
@test "\$FILE $testname" {
|
||
|
run "\${CSCLI}" --crowdsec "\${CROWDSEC}" --cscli "\${CSCLI}" --hub "${hubdir}" hubtest run "${testname}" --clean
|
||
|
# in case of error, need to see what went wrong
|
||
|
echo "\$output"
|
||
|
assert_success
|
||
|
}
|
||
|
EOT
|
||
|
done
|