Explorar o código

Travis: Add static analysis to build

Turo Lamminen %!s(int64=8) %!d(string=hai) anos
pai
achega
a15bfceb7e
Modificáronse 2 ficheiros con 22 adicións e 1 borrados
  1. 15 0
      .travis.sh
  2. 7 1
      .travis.yml

+ 15 - 0
.travis.sh

@@ -43,9 +43,24 @@ if [ $ANDROID ]; then
     ant -v -Dmy.dir=${TRAVIS_BUILD_DIR} -f ${TRAVIS_BUILD_DIR}/port/jassimp/build.xml ndk-jni
     ant -v -Dmy.dir=${TRAVIS_BUILD_DIR} -f ${TRAVIS_BUILD_DIR}/port/jassimp/build.xml ndk-jni
 fi
 fi
 if [ "$TRAVIS_OS_NAME" = "linux" ]; then
 if [ "$TRAVIS_OS_NAME" = "linux" ]; then
+  if [ $ANALYZE = "ON" ] ; then
+    if [ "$CC" = "clang" ]; then
+        scan-build cmake -G "Unix Makefiles" -DBUILD_SHARED_LIBS=OFF
+        scan-build --status-bugs make -j2
+    else
+        cppcheck --version
+        generate \
+        && cppcheck --error-exitcode=1 -j2 -Iinclude -Icode code 2> cppcheck.txt
+        if [ -s cppcheck.txt ]; then
+            cat cppcheck.txt
+            exit 1
+        fi
+    fi
+  else
     generate \
     generate \
     && make -j4 \
     && make -j4 \
     && sudo make install \
     && sudo make install \
     && sudo ldconfig \
     && sudo ldconfig \
     && (cd test/unit; ../../bin/unit)
     && (cd test/unit; ../../bin/unit)
+  fi
 fi
 fi

+ 7 - 1
.travis.yml

@@ -4,7 +4,7 @@ language: cpp
 cache: ccache
 cache: ccache
 
 
 before_install:
 before_install:
-  - if [ "$TRAVIS_OS_NAME" = "linux" ]; then sudo apt-get update -qq && sudo apt-get install cmake && sudo apt-get install cmake python3 && sudo apt-get install -qq freeglut3-dev libxmu-dev libxi-dev ; echo -n | openssl s_client -connect scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca- ; fi
+  - if [ "$TRAVIS_OS_NAME" = "linux" ]; then sudo apt-get update -qq && sudo apt-get install cmake cppcheck && sudo apt-get install cmake python3 && sudo apt-get install -qq freeglut3-dev libxmu-dev libxi-dev ; echo -n | openssl s_client -connect scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca- ; fi
   - 'if [ "$TRAVIS_OS_NAME" = "osx" ];  then
   - 'if [ "$TRAVIS_OS_NAME" = "osx" ];  then
        if brew ls --versions cmake > /dev/null; then
        if brew ls --versions cmake > /dev/null; then
          echo cmake already installed.;
          echo cmake already installed.;
@@ -39,6 +39,12 @@ matrix:
     - os: linux
     - os: linux
       compiler: gcc
       compiler: gcc
       env: SHARED_BUILD=ON
       env: SHARED_BUILD=ON
+    - os: linux
+      compiler: gcc
+      env: ANALYZE=ON
+    - os: linux
+      compiler: clang
+      env: ANALYZE=ON
     - os: linux
     - os: linux
       compiler: clang
       compiler: clang
       env: ASAN=ON
       env: ASAN=ON