Commit 8267117a by Eric Fiselier

Add ASAN and UBSAN builders to travis for both GCC and Clang.

This patch adds new builders that test against GCC 6 and Clang 3.8 respectivly. They also enable both address and undefined sanitizer. MSAN currently won't work since it requires a sanitized STL.
parent c04f703a
......@@ -7,15 +7,35 @@ language: cpp
matrix:
include:
- compiler: gcc
env: COMPILER=g++ STD=c++11 BUILD_TYPE=Coverage
env: COMPILER=g++ C_COMPILER=gcc BUILD_TYPE=Coverage
- compiler: gcc
env: COMPILER=g++ STD=c++11 BUILD_TYPE=Debug
env: COMPILER=g++ C_COMPILER=gcc BUILD_TYPE=Debug
- compiler: gcc
env: COMPILER=g++ STD=c++11 BUILD_TYPE=Release
env: COMPILER=g++ C_COMPILER=gcc BUILD_TYPE=Release
- compiler: gcc
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-6
env:
- COMPILER=g++-6 C_COMPILER=gcc-6 BUILD_TYPE=Debug
- EXTRA_FLAGS="-fno-omit-frame-pointer -g -O2 -fsanitize=undefined,address -fuse-ld=gold"
- compiler: clang
env: COMPILER=clang++ C_COMPILER=clang BUILD_TYPE=Debug
- compiler: clang
env: COMPILER=clang++ STD=c++11 BUILD_TYPE=Debug
env: COMPILER=clang++ C_COMPILER=clang BUILD_TYPE=Release
- compiler: clang
env: COMPILER=clang++ STD=c++11 BUILD_TYPE=Release
addons:
apt:
packages:
clang-3.8
env:
- COMPILER=clang++-3.8 C_COMPILER=clang-3.8 BUILD_TYPE=Debug
- EXTRA_FLAGS="-fno-omit-frame-pointer -g -O2 -fsanitize=undefined,address -fno-sanitize-recover=all"
- UBSAN_OPTIONS=print_stacktrace=1
before_script:
- mkdir build && cd build
......@@ -28,7 +48,7 @@ install:
fi
script:
- cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_CXX_FLAGS="-std=${STD}"
- cmake .. -DCMAKE_C_COMPILER=${C_COMPILER} -DCMAKE_CXX_COMPILER=${COMPILER} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_CXX_FLAGS="${EXTRA_FLAGS}"
- make
- make CTEST_OUTPUT_ON_FAILURE=1 test
......
......@@ -114,7 +114,9 @@ std::string join(First f, Args&&... args) {
return std::string(std::move(f)) + "[ ]+" + join(std::forward<Args>(args)...);
}
std::string dec_re = "[0-9]+\\.[0-9]+";
std::string dec_re = "[0-9]*[.]?[0-9]+([eE][-+][0-9]+)?";
} // end namespace
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment