Forráskód Böngészése

Travis: Added -fsanitize to several builds

Benoit Blanchon 9 éve
szülő
commit
fb554071dc
5 módosított fájl, 44 hozzáadás és 49 törlés
  1. 17 23
      .travis.yml
  2. 0 4
      CMakeLists.txt
  3. 0 9
      scripts/travis/cmake-osx.sh
  4. 27 6
      scripts/travis/cmake.sh
  5. 0 7
      scripts/travis/sanitize.sh

+ 17 - 23
.travis.yml

@@ -7,97 +7,91 @@ matrix:
         apt:
           sources: ['ubuntu-toolchain-r-test']
           packages: ['g++-4.4']
-      env: SCRIPT=cmake CMAKE_CXX_COMPILER=g++-4.4
+      env: SCRIPT=cmake GCC=4.4
     - compiler: gcc
       addons:
         apt:
           sources: ['ubuntu-toolchain-r-test']
           packages: ['g++-4.5']
-      env: SCRIPT=cmake CMAKE_CXX_COMPILER=g++-4.5
+      env: SCRIPT=cmake GCC=4.5
     - compiler: gcc
       addons:
         apt:
           sources: ['ubuntu-toolchain-r-test']
           packages: ['g++-4.6']
-      env: SCRIPT=cmake CMAKE_CXX_COMPILER=g++-4.6
+      env: SCRIPT=cmake GCC=4.6
     - compiler: gcc
       addons:
         apt:
           sources: ['ubuntu-toolchain-r-test']
           packages: ['g++-4.7']
-      env: SCRIPT=cmake CMAKE_CXX_COMPILER=g++-4.7
+      env: SCRIPT=cmake GCC=4.7
     - compiler: gcc
       addons:
         apt:
           sources: ['ubuntu-toolchain-r-test']
           packages: ['g++-4.8']
-      env: SCRIPT=cmake CMAKE_CXX_COMPILER=g++-4.8
+      env: SCRIPT=cmake GCC=4.8 SANITIZE=address
     - compiler: gcc
       addons:
         apt:
           sources: ['ubuntu-toolchain-r-test']
           packages: ['g++-4.9']
-      env: SCRIPT=cmake CMAKE_CXX_COMPILER=g++-4.9
+      env: SCRIPT=cmake GCC=4.9 SANITIZE=leak
     - compiler: gcc
       addons:
         apt:
           sources: ['ubuntu-toolchain-r-test']
           packages: ['g++-5']
-      env: SCRIPT=cmake CMAKE_CXX_COMPILER=g++-5
+      env: SCRIPT=cmake GCC=5 SANITIZE=undefined
     - compiler: clang
-      env: SCRIPT=cmake CMAKE_CXX_COMPILER=clang++
+      env: SCRIPT=cmake
     - compiler: clang
       addons:
         apt:
           sources: ['ubuntu-toolchain-r-test','llvm-toolchain-precise-3.5']
           packages: ['clang-3.5']
-      env: SCRIPT=cmake CMAKE_CXX_COMPILER=clang++-3.5
+      env: SCRIPT=cmake CLANG=3.5 SANITIZE=address
     - compiler: clang
       addons:
         apt:
           sources: ['ubuntu-toolchain-r-test','llvm-toolchain-precise-3.6']
           packages: ['clang-3.6']
-      env: SCRIPT=cmake CMAKE_CXX_COMPILER=clang++-3.6
+      env: SCRIPT=cmake CLANG=3.6 SANITIZE=leak
     - compiler: clang
       addons:
         apt:
           sources: ['ubuntu-toolchain-r-test','llvm-toolchain-precise-3.7']
           packages: ['clang-3.7']
-      env: SCRIPT=cmake CMAKE_CXX_COMPILER=clang++-3.7
+      env: SCRIPT=cmake CLANG=3.7
     - compiler: clang
       addons:
         apt:
           sources: ['ubuntu-toolchain-r-test','llvm-toolchain-precise-3.8']
           packages: ['clang-3.8']
-      env: SCRIPT=cmake CMAKE_CXX_COMPILER=clang++-3.8
-    - compiler: clang
-      addons:
-        apt:
-          sources: ['ubuntu-toolchain-r-test','llvm-toolchain-precise-3.8']
-          packages: ['clang-3.8']
-      env: SCRIPT=sanitize CMAKE_CXX_COMPILER=clang++-3.8
+      env: SCRIPT=cmake CLANG=3.8 SANITIZE=undefined
     - compiler: gcc
       env: SCRIPT=coverage
     - os: osx
       osx_image: xcode6.4
       compiler: clang
-      env: SCRIPT=cmake-osx
+      env: SCRIPT=cmake
     - os: osx
       osx_image: xcode7
       compiler: clang
-      env: SCRIPT=cmake-osx
+      env: SCRIPT=cmake
     - os: osx
       osx_image: xcode7.1
       compiler: clang
-      env: SCRIPT=cmake-osx
+      env: SCRIPT=cmake
     - os: osx
       osx_image: xcode7.2
       compiler: clang
-      env: SCRIPT=cmake-osx
+      env: SCRIPT=cmake
     - os: osx
       osx_image: xcode7.3
       compiler: clang
-      env: SCRIPT=cmake-osx
+      env: SCRIPT=cmake SANITIZE=address
     - env: SCRIPT=arduino VERSION=1.6.7 BOARD=arduino:avr:uno
     - env: SCRIPT=arduino VERSION=1.6.12 BOARD=arduino:avr:uno
     - env: SCRIPT=platformio BOARD=uno

+ 0 - 4
CMakeLists.txt

@@ -18,8 +18,4 @@ if(${COVERAGE})
 	set(CMAKE_CXX_FLAGS "-g -O0 -fprofile-arcs -ftest-coverage")
 endif()
 
-if(${SANITIZE})
-   set(CMAKE_CXX_FLAGS "-fsanitize=address,undefined")
-endif()
-
 add_subdirectory(test)

+ 0 - 9
scripts/travis/cmake-osx.sh

@@ -1,9 +0,0 @@
-#!/bin/sh -eux
-
-URL=https://cmake.org/files/v3.4/cmake-3.4.3-Darwin-x86_64.tar.gz
-
-curl -sS $URL | tar xz -C /tmp --strip 1
-
-/tmp/CMake.app/Contents/bin/cmake .
-make
-make test

+ 27 - 6
scripts/travis/cmake.sh

@@ -1,9 +1,30 @@
-#!/bin/sh -eux
-
-URL=https://cmake.org/files/v3.4/cmake-3.4.3-Linux-x86_64.tar.gz
+#!/bin/sh -ex
 
+if [ $(uname) = 'Darwin' ]; then
+	URL=https://cmake.org/files/v3.4/cmake-3.4.3-Darwin-x86_64.tar.gz
+	CMAKE=/tmp/CMake.app/Contents/bin/cmake
+	CTEST=/tmp/CMake.app/Contents/bin/ctest
+else
+	URL=https://cmake.org/files/v3.4/cmake-3.4.3-Linux-x86_64.tar.gz
+	CMAKE=/tmp/bin/cmake
+	CTEST=/tmp/bin/ctest
+fi
 curl -sS $URL | tar xz -C /tmp --strip 1
 
-/tmp/bin/cmake -DCMAKE_CXX_COMPILER=$CMAKE_CXX_COMPILER .
-make 
-make test
+if [ -n "$GCC" ]; then
+	export CC="gcc-$GCC"
+	export CXX="g++-$GCC"
+fi
+
+if [ -n "$CLANG" ]; then
+	export CC="clang-$CLANG"
+	export CXX="clang++-$CLANG"
+fi
+
+if [ -n "$SANITIZE" ]; then
+	export CXXFLAGS="-fsanitize=$SANITIZE"
+fi
+
+$CMAKE .
+$CMAKE --build .
+$CTEST -VV .

+ 0 - 7
scripts/travis/sanitize.sh

@@ -1,7 +0,0 @@
-#!/bin/sh -eux
-
-curl https://cmake.org/files/v3.4/cmake-3.4.0-Linux-x86_64.tar.gz | tar xz -C /tmp --strip 1
-
-/tmp/bin/cmake -DSANITIZE=true .
-cmake --build .
-ctest -VV .