From 61d1751dfff71d8fd433c6c84bd39db1672a3ee6 Mon Sep 17 00:00:00 2001 From: Loic Blot Date: Wed, 5 Oct 2016 22:17:22 +0200 Subject: [PATCH] Travis: build matrix improvements + CPP11 build --- .travis.yml | 36 +++++++++++++++++---------------- src/unittest/test_settings.cpp | 7 +++++-- src/unittest/test_threading.cpp | 1 + util/travis/before_install.sh | 10 +-------- util/travis/script.sh | 4 ++++ 5 files changed, 30 insertions(+), 28 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9d160081..534479ef 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,14 +1,4 @@ language: cpp -compiler: - - gcc - - clang -os: - - osx - - linux -env: - - PLATFORM=Win32 - - PLATFORM=Win64 - - PLATFORM=Unix before_install: ./util/travis/before_install.sh script: ./util/travis/script.sh sudo: required @@ -16,14 +6,26 @@ notifications: email: false matrix: fast_finish: true - exclude: + include: - env: PLATFORM=Win32 - compiler: clang + compiler: gcc + os: linux - env: PLATFORM=Win64 + compiler: gcc + os: linux + - env: PLATFORM=Unix COMPILER=clang compiler: clang - - env: PLATFORM=Win32 - os: osx - - env: PLATFORM=Win64 - os: osx - - compiler: gcc os: osx + - env: PLATFORM=Unix COMPILER=g++ + compiler: gcc + os: linux + - env: PLATFORM=Unix COMPILER=clang + compiler: clang + os: linux + - env: PLATFORM=Unix COMPILER=g++-6 + compiler: gcc + os: linux +addons: + apt: + sources: &sources + - ubuntu-toolchain-r-test diff --git a/src/unittest/test_settings.cpp b/src/unittest/test_settings.cpp index a82d734f..733c7e92 100644 --- a/src/unittest/test_settings.cpp +++ b/src/unittest/test_settings.cpp @@ -32,7 +32,7 @@ class TestSettings : public TestBase { void testAllSettings(); static const char *config_text_before; - static const char *config_text_after; + static const std::string config_text_after; }; static TestSettings g_test_instance; @@ -69,7 +69,7 @@ const char *TestSettings::config_text_before = "np_terrain = 5, 40, (250, 250, 250), 12341, 5, 0.7, 2.4\n" "zoop = true"; -const char *TestSettings::config_text_after = +const std::string TestSettings::config_text_after = "leet = 1337\n" "leetleet = 13371337\n" "leetleet_neg = -13371337\n" @@ -197,7 +197,10 @@ void TestSettings::testAllSettings() UASSERT(s.updateConfigObject(is, os, "", 0) == true); //printf(">>>> expected config:\n%s\n", TEST_CONFIG_TEXT_AFTER); //printf(">>>> actual config:\n%s\n", os.str().c_str()); +#if __cplusplus < 201103L + // This test only works in older C++ versions than C++11 because we use unordered_map UASSERT(os.str() == config_text_after); +#endif } catch (SettingNotFoundException &e) { UASSERT(!"Setting not found!"); } diff --git a/src/unittest/test_threading.cpp b/src/unittest/test_threading.cpp index 224e123d..cdbf9674 100644 --- a/src/unittest/test_threading.cpp +++ b/src/unittest/test_threading.cpp @@ -163,6 +163,7 @@ class AtomicTestThread : public Thread { void TestThreading::testAtomicSemaphoreThread() { Atomic val; + val = 0; Semaphore trigger; static const u8 num_threads = 4; diff --git a/util/travis/before_install.sh b/util/travis/before_install.sh index 70037389..a2eb3780 100755 --- a/util/travis/before_install.sh +++ b/util/travis/before_install.sh @@ -1,16 +1,8 @@ #!/bin/bash -e if [[ $TRAVIS_OS_NAME == "linux" ]]; then - if [[ $CC == "clang" ]]; then - export PATH="/usr/bin/:$PATH" - sudo sh -c 'echo "deb http://ppa.launchpad.net/eudoxos/llvm-3.1/ubuntu precise main" >> /etc/apt/sources.list' - sudo apt-key adv --keyserver pool.sks-keyservers.net --recv-keys 92DE8183 - sudo apt-get update - sudo apt-get install llvm-3.1 - sudo apt-get install clang - fi sudo apt-get update - sudo apt-get install p7zip-full + sudo apt-get install p7zip-full $COMPILER fi if [[ $PLATFORM == "Unix" ]]; then diff --git a/util/travis/script.sh b/util/travis/script.sh index 870954eb..4f37d8f5 100755 --- a/util/travis/script.sh +++ b/util/travis/script.sh @@ -4,6 +4,10 @@ if [[ $PLATFORM == "Unix" ]]; then mkdir -p travisbuild cd travisbuild || exit 1 CMAKE_FLAGS='' + if [[ $COMPILER == "g++-6" ]]; then + export CC=gcc-6 + export CXX=g++-6 + fi # Clang builds with FreeType fail on Travis if [[ $CC == "clang" ]]; then CMAKE_FLAGS+=' -DENABLE_FREETYPE=FALSE'