From 46a86612debded8e001d07a96c99f1cb37dc69c6 Mon Sep 17 00:00:00 2001 From: reuk Date: Mon, 27 Nov 2017 12:55:08 +0000 Subject: [PATCH 1/2] Add cron jobs for sanitizers and libc++ debug mode --- .travis.yml | 21 +++++++++++++++++++++ CMakeLists.txt | 2 ++ cmake/set_up_configs.cmake | 10 ++++++++++ 3 files changed, 33 insertions(+) create mode 100644 cmake/set_up_configs.cmake diff --git a/.travis.yml b/.travis.yml index ecd05ad492e..d8142a08ff1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -241,6 +241,27 @@ jobs: - COMPILER="ccache g++" script: echo "This is coverity build. No need for tests." + - stage: Extended checks + env: + - NAME="sanitized build" + if: type = cron + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - libc++-dev + os: linux + compiler: clang + cache: ccache + install: + - ccache -z + - ccache --max-size=1G + - cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=Sanitized -DCMAKE_CXX_COMPILER="clang++" -DCMAKE_CXX_FLAGS="-Wno-error=unused-command-line-argument -stdlib=libc++" + - cmake --build build -- -j4 + script: (cd build; ctest -j2 -V -L CORE) + + allow_failures: - <<: *formatting-stage - <<: *linter-stage diff --git a/CMakeLists.txt b/CMakeLists.txt index 81f847e4105..844b904a47c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,7 @@ cmake_minimum_required(VERSION 3.2) +include(cmake/set_up_configs.cmake) + find_program(CCACHE_PROGRAM ccache) if(CCACHE_PROGRAM) set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}") diff --git a/cmake/set_up_configs.cmake b/cmake/set_up_configs.cmake new file mode 100644 index 00000000000..5d390b14948 --- /dev/null +++ b/cmake/set_up_configs.cmake @@ -0,0 +1,10 @@ +if(NOT CONFIGURATIONS_HAVE_BEEN_SET_UP) + set(CONFIGURATIONS_HAVE_BEEN_SET_UP true) + set(build_types_string "Debug;Release;RelWithDebInfo;Sanitized;LibCPPDebug") + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY HELPSTRING "Choose the type of build") + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "${build_types_string}") + set(CMAKE_CONFIGURATION_TYPES "${build_types_string}" CACHE STRING "" FORCE) + + set(CMAKE_CXX_FLAGS_SANITIZED "-fsanitize=address,undefined") + set(CMAKE_CXX_FLAGS_LIBCPPDEBUG "-D_LIBCPP_DEBUG=1 -D_GLIBCXX_DEBUG") +endif() From fae282bd41d30759d2d3d819d7f259f67f89691a Mon Sep 17 00:00:00 2001 From: reuk Date: Fri, 1 Dec 2017 16:17:19 +0000 Subject: [PATCH 2/2] Check it works outside of a cron job --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index d8142a08ff1..81ab56f7d5a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -244,7 +244,7 @@ jobs: - stage: Extended checks env: - NAME="sanitized build" - if: type = cron + # if: type = cron addons: apt: sources: