49 lines
1.3 KiB
Bash
Executable File
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}
|