zeek/auxil/broker/ci/test.sh
Patrick Kelley 8fd444092b initial
2025-05-07 15:35:15 -04:00

49 lines
1.3 KiB
Bash
Executable File

#! /usr/bin/env bash
# Prefer ctest3 over "regular" ctest (ctest == ctest2 on RHEL).
if command -v ctest3 >/dev/null 2>&1 ; then
CTestCommand="ctest3"
elif command -v ctest >/dev/null 2>&1 ; then
CTestCommand="ctest"
else
echo "No ctest command found!"
exit 1
fi
set -e
result=0
export PATH="$PATH:$PWD/build/bin"
BaseDir="$PWD"
cd build
if [[ -z "${BROKER_CI_MEMCHECK}" ]]; then
# C++ test suites (via CTest).
$CTestCommand --output-on-failure
else
# Python tests under ASan are problematic for various reasons, so skip
# e.g. need LD_PRELOAD, some specific compiler packagings are
# buggy when preloaded due to missing libasan compilation flag,
# leaks are miss-reported so have to disable leak checking, and
# finally most tests end up timing out when run under ASan anyway.
$CTestCommand --output-on-failure -E python
fi
# BTest suites. Those also use Python but they simply execute Broker binaries
# as-is and are thus OK to use under ASAN.
if command -v pip3 >/dev/null 2>&1 ; then
BinDir="$(python3 -m site --user-base)/bin"
export PATH="$PATH:$BinDir"
python3 -m venv test-env
source test-env/bin/activate
pip3 install btest websockets jsonschema
cd $BaseDir/tests/btest
btest || result=1
[[ -d .tmp ]] && tar -czf tmp.tar.gz .tmp
fi
exit ${result}