You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
2.7 KiB
96 lines
2.7 KiB
#!/usr/bin/env bash
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
set -e
|
|
|
|
source $TRAVIS_BUILD_DIR/.ci/docker-prelude.sh
|
|
|
|
export CONFIGURE_OPTIONS=
|
|
|
|
if [ -d build ]; then
|
|
rm -rf build
|
|
fi
|
|
|
|
if [ -d ./build-no-tests ]; then
|
|
rm -rf build-no-tests
|
|
fi
|
|
|
|
# Do not run tests when building on coverity_scan branch
|
|
if [ "$COVERITY_SCAN_BRANCH" == 1 ]; then
|
|
echo "Coverity scan branch detected, not running build nor tests...exiting!"
|
|
exit 0
|
|
fi
|
|
|
|
if [ -z "$WITH_CRYPTO" ]; then
|
|
echo "variable WITH_CRYPTO not set, defaulting to ossl"
|
|
export WITH_CRYPTO="ossl"
|
|
fi
|
|
|
|
if [ "$WITH_CRYPTO" != "ossl" ]; then
|
|
export CONFIGURE_OPTIONS="$CONFIGURE_OPTIONS --disable-fapi"
|
|
fi
|
|
|
|
./bootstrap
|
|
|
|
# Is it a fuzz run, if so build the fuzz test and exit.
|
|
if [ "$GEN_FUZZ" == "1" ]; then
|
|
./configure --with-fuzzing=libfuzzer --enable-tcti-fuzzing --disable-tcti-device --disable-tcti-mssim --disable-shared --with-crypto="$WITH_CRYPTO"
|
|
make -j$(nproc) check
|
|
exit 0
|
|
fi
|
|
|
|
#
|
|
# General build runs
|
|
#
|
|
|
|
# build with no tests enabled
|
|
mkdir ./build-no-tests
|
|
pushd ./build-no-tests
|
|
|
|
echo "PWD: $(pwd)"
|
|
echo "ls -la ../ $(ls -la ../)"
|
|
|
|
../configure --enable-tcti-partial-reads=$WITH_TCTI_PARTIAL --enable-tcti-device-async=$WITH_TCTI_ASYNC --with-crypto=$WITH_CRYPTO $CONFIGURE_OPTIONS
|
|
make -j$(nproc)
|
|
popd
|
|
|
|
# build with all tests enabled
|
|
mkdir ./build
|
|
pushd ./build
|
|
|
|
if [ "$CC" == "gcc" ]; then
|
|
export CONFIGURE_OPTIONS="$CONFIGURE_OPTIONS --enable-code-coverage";
|
|
fi
|
|
|
|
if [ "$SCANBUILD" == "yes" ]; then
|
|
scan-build --status-bugs ../configure --enable-tcti-partial-reads=$WITH_TCTI_PARTIAL --enable-tcti-device-async=$WITH_TCTI_ASYNC --enable-unit --enable-integration --with-crypto=$WITH_CRYPTO $CONFIGURE_OPTIONS
|
|
elif [ "$CC" == "clang" ]; then
|
|
../configure --enable-tcti-partial-reads=$WITH_TCTI_PARTIAL --enable-tcti-device-async=$WITH_TCTI_ASYNC --enable-unit --enable-integration --with-crypto=$WITH_CRYPTO $CONFIGURE_OPTIONS
|
|
else
|
|
../configure --with-sanitizer=undefined --enable-tcti-partial-reads=$WITH_TCTI_PARTIAL --enable-tcti-device-async=$WITH_TCTI_ASYNC --enable-unit --enable-integration --with-crypto=$WITH_CRYPTO $CONFIGURE_OPTIONS
|
|
fi
|
|
|
|
if [ "$SCANBUILD" == "yes" ]; then
|
|
scan-build --status-bugs make -j distcheck
|
|
elif [ "$CC" == "clang" ]; then
|
|
make -j distcheck
|
|
else
|
|
make -j check
|
|
fi
|
|
|
|
popd
|
|
|
|
# back in root git directory, check for whitespace errors. We do this post CI
|
|
# so people can verify the rest of their patch works in CI before dying.
|
|
# git diff --check fails with a non-zero return code causing the shell to die
|
|
# as it has a set -e executed.
|
|
[ -z "$TRAVIS_TAG" ] && git diff --check origin/${TRAVIS_BRANCH:-master}
|
|
|
|
if [ "$ENABLE_COVERAGE" == "true" ]; then
|
|
bash <(curl -s https://codecov.io/bash)
|
|
else
|
|
echo "ENABLE_COVERAGE not true, got \"$ENABLE_COVERAGE\""
|
|
fi
|
|
|
|
exit 0
|