From d768c499803768cfbeac84ddf55308d2945d8efa Mon Sep 17 00:00:00 2001
From: patrick96 <p.ziegler96@gmail.com>
Date: Sun, 8 Apr 2018 00:49:51 +0200
Subject: [PATCH] travis: Separate compiling and testing

---
 .travis.yml                  | 48 ++++++++++++++++++++++--------------
 common/travis/configure.sh   |  1 +
 common/travis/environment.sh |  3 ---
 common/travis/summary.sh     |  3 +++
 common/travis/tests.sh       | 23 ++++++++---------
 5 files changed, 46 insertions(+), 32 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 13201218..f8805295 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,9 +2,36 @@ sudo: required
 dist: trusty
 language: cpp
 
-compiler:
-  - clang
-  - gcc
+env:
+  global:
+    - LLVM_VERSION="3.8.1"
+    - LLVM_URL="http://llvm.org/releases/${LLVM_VERSION}/llvm-${LLVM_VERSION}.src.tar.xz"
+    - LIBCXX_URL="http://llvm.org/releases/${LLVM_VERSION}/libcxx-${LLVM_VERSION}.src.tar.xz"
+    - LIBCXXABI_URL="http://llvm.org/releases/${LLVM_VERSION}/libcxxabi-${LLVM_VERSION}.src.tar.xz"
+    - CMAKE_URL="https://cmake.org/files/v3.6/cmake-3.6.2-Linux-x86_64.tar.gz"
+    - PYTHONPATH="/usr/lib/python2.7/dist-packages:${PYTHONPATH}"
+    - JOBS=4
+    - POLYBAR_BUILD_TYPE="compile"
+
+script: source ${TRAVIS_BUILD_DIR}/common/travis/build.sh
+
+matrix:
+  include:
+    - compiler: clang
+      env: BUILD_TYPE=Release
+
+    - compiler: clang
+      env: BUILD_TYPE=Debug
+
+    - compiler: gcc
+      env: BUILD_TYPE=Debug POLYBAR_BUILD_TYPE=tests
+      script: ${TRAVIS_BUILD_DIR}/common/travis/tests.sh
+
+    - compiler: gcc
+      env: BUILD_TYPE=Release
+
+    - compiler: gcc
+      env: BUILD_TYPE=Debug
 
 addons:
   apt:
@@ -37,17 +64,6 @@ addons:
       - xutils-dev
       - libgtest-dev
 
-env:
-  global:
-    - BUILD_TESTS="ON"
-    - LLVM_VERSION="3.8.1"
-    - LLVM_URL="http://llvm.org/releases/${LLVM_VERSION}/llvm-${LLVM_VERSION}.src.tar.xz"
-    - LIBCXX_URL="http://llvm.org/releases/${LLVM_VERSION}/libcxx-${LLVM_VERSION}.src.tar.xz"
-    - LIBCXXABI_URL="http://llvm.org/releases/${LLVM_VERSION}/libcxxabi-${LLVM_VERSION}.src.tar.xz"
-    - CMAKE_URL="https://cmake.org/files/v3.6/cmake-3.6.2-Linux-x86_64.tar.gz"
-    - PYTHONPATH="/usr/lib/python2.7/dist-packages:${PYTHONPATH}"
-    - JOBS=4
-
 cache:
   directories:
     - ${TRAVIS_BUILD_DIR}/deps/cmake
@@ -66,10 +82,6 @@ before_script:
   - source ${TRAVIS_BUILD_DIR}/common/travis/summary.sh
   - source ${TRAVIS_BUILD_DIR}/common/travis/configure.sh
 
-script:
-  - source ${TRAVIS_BUILD_DIR}/common/travis/build.sh
-  - source ${TRAVIS_BUILD_DIR}/common/travis/tests.sh
-
 notifications:
   email: false
   irc:
diff --git a/common/travis/configure.sh b/common/travis/configure.sh
index 5052eb0d..dbb8a4a7 100755
--- a/common/travis/configure.sh
+++ b/common/travis/configure.sh
@@ -5,4 +5,5 @@ cmake \
   -DCMAKE_C_COMPILER="${CC}" \
   -DCMAKE_CXX_COMPILER="${CXX}" \
   -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
+  -DCMAKE_BUILD_TYPE="${BUILD_TYPE}" \
   -DBUILD_TESTS:BOOL="${BUILD_TESTS:-OFF}" ..
diff --git a/common/travis/environment.sh b/common/travis/environment.sh
index 51782395..92e7357f 100755
--- a/common/travis/environment.sh
+++ b/common/travis/environment.sh
@@ -7,7 +7,4 @@ if [ "${CXX:0:7}" = "clang++" ]; then
 elif [ "${CXX:0:3}" = "g++" ]; then
   export CXX="g++-5"
   export CC="gcc-5"
-elif [ "${CXX:0:3}" = "gcc" ]; then
-  export CXX="g++-5"
-  export CC="gcc-5"
 fi
diff --git a/common/travis/summary.sh b/common/travis/summary.sh
index 0b8c8145..be91f660 100755
--- a/common/travis/summary.sh
+++ b/common/travis/summary.sh
@@ -9,6 +9,9 @@ echo "cmake --version"
 cmake --version
 
 echo "PATH=${PATH}"
+echo "CXX=${CXX}"
+echo "CC=${CC}"
 echo "CXXFLAGS=${CXXFLAGS}"
 echo "LDFLAGS=${LDFLAGS}"
 echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}"
+echo "JOBS=${JOBS}"
diff --git a/common/travis/tests.sh b/common/travis/tests.sh
index 95f419f6..7d2d1ce3 100755
--- a/common/travis/tests.sh
+++ b/common/travis/tests.sh
@@ -1,15 +1,16 @@
 #!/bin/bash
 r=0
-if [ "${BUILD_TESTS:-OFF}" = "ON" ]; then
-  for test in tests/unit_test.*; do
-    [ -x "$test" ] || continue
 
-    if $test; then
-      printf "\033[1;32m%s\033[0m\n" "${test##*/} passed"
-    else
-      r=1
-      printf "\033[1;31m%s\033[0m\n" "${test##*/} failed"
-    fi
-  done
-fi
+make -j"${JOBS}" all_unit_tests
+
+for test in tests/unit_test.*; do
+  [ -x "$test" ] || continue
+
+  if $test; then
+    printf "\033[1;32m%s\033[0m\n" "${test##*/} passed"
+  else
+    r=1
+    printf "\033[1;31m%s\033[0m\n" "${test##*/} failed"
+  fi
+done
 exit $r