diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index dabbf0385d..8b27282451 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -255,6 +255,15 @@ linux64_tsan-build: variables: BUILD_TARGET: linux64_tsan +linux64_ubsan-build: + extends: + - .build-template + - .skip-in-fast-mode-template + needs: + - x86_64-pc-linux-gnu-debug + variables: + BUILD_TARGET: linux64_ubsan + linux64_nowallet-build: extends: - .build-template @@ -299,3 +308,12 @@ linux64_tsan-test: - linux64_tsan-build variables: BUILD_TARGET: linux64_tsan + +linux64_ubsan-test: + extends: + - .test-template + - .skip-in-fast-mode-template + needs: + - linux64_ubsan-build + variables: + BUILD_TARGET: linux64_ubsan diff --git a/ci/dash/matrix.sh b/ci/dash/matrix.sh index e6abf281e4..3f8f35bc4b 100755 --- a/ci/dash/matrix.sh +++ b/ci/dash/matrix.sh @@ -22,6 +22,8 @@ elif [ "$BUILD_TARGET" = "linux64" ]; then source ./ci/test/00_setup_env_native_qt5.sh elif [ "$BUILD_TARGET" = "linux64_tsan" ]; then source ./ci/test/00_setup_env_native_tsan.sh +elif [ "$BUILD_TARGET" = "linux64_ubsan" ]; then + source ./ci/test/00_setup_env_native_ubsan.sh elif [ "$BUILD_TARGET" = "linux64_fuzz" ]; then source ./ci/test/00_setup_env_native_fuzz.sh elif [ "$BUILD_TARGET" = "linux64_cxx20" ]; then diff --git a/ci/test/00_setup_env_native_ubsan.sh b/ci/test/00_setup_env_native_ubsan.sh new file mode 100755 index 0000000000..0976c6c08a --- /dev/null +++ b/ci/test/00_setup_env_native_ubsan.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +# +# Copyright (c) 2019 The Bitcoin Core developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. + +export LC_ALL=C.UTF-8 + +export CONTAINER_NAME=ci_native_ubsan +export PACKAGES="clang-8 llvm-8 python3-zmq qtbase5-dev qttools5-dev-tools libevent-dev bsdmainutils libboost-filesystem-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libqrencode-dev" +export DEP_OPTS="NO_UPNP=1 DEBUG=1" +export GOAL="install" +export BITCOIN_CONFIG="--enable-zmq --enable-reduce-exports --enable-crash-hooks --with-sanitizers=undefined" +export PYZMQ=true +export RUN_SYMBOL_TESTS=false