From 50e7fff0f39b77e86a2df9838a6d2e42729bfde1 Mon Sep 17 00:00:00 2001 From: andy5995 Date: Wed, 24 Jul 2019 01:08:30 -0500 Subject: [PATCH 01/12] .travis.yml:install valgrind (#498) --- .travis.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.travis.yml b/.travis.yml index 1471983..b64c5a4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,6 +8,7 @@ addons: apt: packages: - cppcheck + - valgrind os: - linux @@ -29,4 +30,9 @@ script: after_success: - make check + - result=$? - if type cppcheck &> /dev/null ; then cppcheck --error-exitcode=1 --quiet *.h *.c tests/ ; fi + - if [ $result != 0 ]; then + cat tests/*.log; + exit $result; + fi From 57e79e1d0b025e85d4bf9284b375a1a9439db4c2 Mon Sep 17 00:00:00 2001 From: andy5995 Date: Wed, 24 Jul 2019 13:30:10 -0500 Subject: [PATCH 02/12] show the logs if tests fail --- .travis.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index b64c5a4..91ee289 100644 --- a/.travis.yml +++ b/.travis.yml @@ -29,10 +29,9 @@ script: - make after_success: - - make check - - result=$? - - if type cppcheck &> /dev/null ; then cppcheck --error-exitcode=1 --quiet *.h *.c tests/ ; fi + - make check ; result=$? - if [ $result != 0 ]; then cat tests/*.log; - exit $result; fi + - if type cppcheck &> /dev/null ; then cppcheck --error-exitcode=1 --quiet *.h *.c tests/ ; fi + - exit $result From 6288be340c5bcf57b8d35a893c897f3ac44312fe Mon Sep 17 00:00:00 2001 From: andy5995 Date: Wed, 24 Jul 2019 14:13:23 -0500 Subject: [PATCH 03/12] test for more compilers --- .travis.yml | 105 ++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 85 insertions(+), 20 deletions(-) diff --git a/.travis.yml b/.travis.yml index 91ee289..acad3fd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,26 +1,87 @@ -language: cpp +language: c +cache: ccache +matrix: +# gcc + include: + - os: linux + dist: xenial + compiler: gcc + addons: + apt: + packages: + - valgrind + - cppcheck + env: CHECK="true" + - os: linux + dist: xenial + compiler: gcc + - os: linux + dist: xenial + compiler: gcc + env: MATRIX_EVAL="CC=gcc-6 && CXX=g++-6" + - os: linux + dist: xenial + compiler: gcc + env: MATRIX_EVAL="CC=gcc-7 && CXX=g++-7" + - os: linux + dist: xenial + compiler: gcc + env: MATRIX_EVAL="CC=gcc-8 && CXX=g++-8" -compiler: - - gcc - - clang +# clang + - os: linux + dist: xenial + compiler: clang + addons: + apt: + sources: + - llvm-toolchain-xenial-5.0 + packages: + - clang-5.0 + env: MATRIX_EVAL="CC=clang-5.0 && CXX=clang++-5.0" + - os: linux + dist: xenial + compiler: clang + addons: + apt: + sources: + - llvm-toolchain-xenial-6.0 + packages: + - clang-6.0 + - cppcheck + env: MATRIX_EVAL="CC=clang-6.0 && CXX=clang++-6.0" + # The default clang on xenial is clang 7.0 + - os: linux + dist: xenial + compiler: clang +# osx + - os: osx + osx_image: xcode9.4 + env: XCODE="true" + - os: osx + osx_image: xcode10.1 + env: XCODE="true" CHECK="true" -addons: - apt: - packages: - - cppcheck - - valgrind +# allow_failures: +# - os: osx -os: - - linux - - osx +install: + - sh autogen.sh before_install: + - echo $CC - echo $LANG - echo $LC_ALL - set -e - -install: - - sh autogen.sh + - if [ "$TRAVIS_OS_NAME" = "linux" ]; then + eval "${MATRIX_EVAL}"; + if [ -n "$MATRIX_EVAL" ] && [ "$TRAVIS_COMPILER" != "clang" ]; then + sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6B05F25D762E3157; + sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test; + sudo apt-get update -qq; + sudo apt-get install -y $CC; + fi; + fi before_script: - ./configure @@ -29,9 +90,13 @@ script: - make after_success: - - make check ; result=$? - - if [ $result != 0 ]; then - cat tests/*.log; + - if [ -n "$CHECK" ]; then + make distcheck; + result=$?; + if [ $result != 0 ]; then + cat tests/*.log; + exit $result; + fi; + if type cppcheck &> /dev/null ; then cppcheck --error-exitcode=1 --quiet *.h *.c tests/ ; fi; fi - - if type cppcheck &> /dev/null ; then cppcheck --error-exitcode=1 --quiet *.h *.c tests/ ; fi - - exit $result + From b140c473d1060b7a8161010cb31ba236f6102d9a Mon Sep 17 00:00:00 2001 From: andy5995 Date: Wed, 24 Jul 2019 14:20:07 -0500 Subject: [PATCH 04/12] install doxygen so 'make distcheck' can succeed --- .travis.yml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index acad3fd..0ec1da6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,4 @@ -language: c +language: cpp cache: ccache matrix: # gcc @@ -11,6 +11,7 @@ matrix: packages: - valgrind - cppcheck + - doxygen env: CHECK="true" - os: linux dist: xenial @@ -49,7 +50,8 @@ matrix: packages: - clang-6.0 - cppcheck - env: MATRIX_EVAL="CC=clang-6.0 && CXX=clang++-6.0" + - doxygen + env: MATRIX_EVAL="CC=clang-6.0 && CXX=clang++-6.0" CHECK="true" # The default clang on xenial is clang 7.0 - os: linux dist: xenial @@ -88,15 +90,17 @@ before_script: script: - make - -after_success: - if [ -n "$CHECK" ]; then - make distcheck; + if [ "$TRAVIS_OS_NAME" = "osx" ]; then + brew install doxygen; + fi; + make check; result=$?; if [ $result != 0 ]; then cat tests/*.log; exit $result; fi; + make distcheck; if type cppcheck &> /dev/null ; then cppcheck --error-exitcode=1 --quiet *.h *.c tests/ ; fi; fi From 897b49f475f6455803f86252b6f9f77f25a059bb Mon Sep 17 00:00:00 2001 From: andy5995 Date: Thu, 25 Jul 2019 14:11:31 -0500 Subject: [PATCH 05/12] remove useless condition that shows logs --- .travis.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0ec1da6..d6e2556 100644 --- a/.travis.yml +++ b/.travis.yml @@ -94,12 +94,6 @@ script: if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew install doxygen; fi; - make check; - result=$?; - if [ $result != 0 ]; then - cat tests/*.log; - exit $result; - fi; make distcheck; if type cppcheck &> /dev/null ; then cppcheck --error-exitcode=1 --quiet *.h *.c tests/ ; fi; fi From a49f1dee8a033cf3f9aaef0be6539cb4669edc51 Mon Sep 17 00:00:00 2001 From: andy5995 Date: Thu, 25 Jul 2019 23:00:50 -0500 Subject: [PATCH 06/12] use "non-test" ppa Maybe something weird about how gcc is configured with the test toolchain? --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index d6e2556..4460f51 100644 --- a/.travis.yml +++ b/.travis.yml @@ -79,7 +79,7 @@ before_install: eval "${MATRIX_EVAL}"; if [ -n "$MATRIX_EVAL" ] && [ "$TRAVIS_COMPILER" != "clang" ]; then sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6B05F25D762E3157; - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test; + sudo add-apt-repository -y ppa:ubuntu-toolchain-r/ppa; sudo apt-get update -qq; sudo apt-get install -y $CC; fi; From 1da4b232358d8b2cf6da37ed8c97f30126af8f4f Mon Sep 17 00:00:00 2001 From: andy5995 Date: Thu, 25 Jul 2019 23:10:14 -0500 Subject: [PATCH 07/12] change key --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 4460f51..2d84460 100644 --- a/.travis.yml +++ b/.travis.yml @@ -78,7 +78,7 @@ before_install: - if [ "$TRAVIS_OS_NAME" = "linux" ]; then eval "${MATRIX_EVAL}"; if [ -n "$MATRIX_EVAL" ] && [ "$TRAVIS_COMPILER" != "clang" ]; then - sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6B05F25D762E3157; + sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1E9377A2BA9EF27F; sudo add-apt-repository -y ppa:ubuntu-toolchain-r/ppa; sudo apt-get update -qq; sudo apt-get install -y $CC; From 163db3f6d0eb70676ca1dbcf18e1af49f196e469 Mon Sep 17 00:00:00 2001 From: andy5995 Date: Thu, 25 Jul 2019 23:16:09 -0500 Subject: [PATCH 08/12] revert toolchain back to "test" --- .travis.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 2d84460..41d557a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,4 @@ language: cpp -cache: ccache matrix: # gcc include: @@ -78,8 +77,8 @@ before_install: - if [ "$TRAVIS_OS_NAME" = "linux" ]; then eval "${MATRIX_EVAL}"; if [ -n "$MATRIX_EVAL" ] && [ "$TRAVIS_COMPILER" != "clang" ]; then - sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1E9377A2BA9EF27F; - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/ppa; + sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6B05F25D762E3157; + sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test; sudo apt-get update -qq; sudo apt-get install -y $CC; fi; From dd0eef6aabb52e9f03439ff414017c4ee7bb47b6 Mon Sep 17 00:00:00 2001 From: andy5995 Date: Fri, 26 Jul 2019 22:42:53 -0500 Subject: [PATCH 09/12] add tests on bionic beaver --- .travis.yml | 61 +++++++++++++++++++++++++++++++++++------------------ 1 file changed, 40 insertions(+), 21 deletions(-) diff --git a/.travis.yml b/.travis.yml index 41d557a..2f04734 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,9 @@ language: cpp matrix: -# gcc include: +# gcc +# xenial +# gcc 5 is the default on xenial - os: linux dist: xenial compiler: gcc @@ -12,49 +14,69 @@ matrix: - cppcheck - doxygen env: CHECK="true" +# bionic - os: linux - dist: xenial - compiler: gcc - - os: linux - dist: xenial + dist: bionic compiler: gcc env: MATRIX_EVAL="CC=gcc-6 && CXX=g++-6" + + # gcc 7 is the default on bionic - os: linux - dist: xenial + dist: bionic compiler: gcc - env: MATRIX_EVAL="CC=gcc-7 && CXX=g++-7" + addons: + apt: + packages: + - valgrind + - cppcheck + - doxygen + env: CHECK="true" - os: linux - dist: xenial + dist: bionic compiler: gcc env: MATRIX_EVAL="CC=gcc-8 && CXX=g++-8" -# clang +# clang +# xenial +# The default clang on xenial is clang 7.0 - os: linux dist: xenial compiler: clang + addons: + apt: + packages: + - clang-6.0 + - cppcheck + - doxygen + env: CHECK="true" + +# bionic + - os: linux + dist: bionic + compiler: clang addons: apt: sources: - - llvm-toolchain-xenial-5.0 + - llvm-toolchain-bionic-5.0 packages: - clang-5.0 env: MATRIX_EVAL="CC=clang-5.0 && CXX=clang++-5.0" - os: linux - dist: xenial + dist: bionic + compiler: clang + env: MATRIX_EVAL="CC=clang-6.0 && CXX=clang++-6.0" + + # The default clang on bionic is clang 7.0 + - os: linux + dist: bionic compiler: clang addons: apt: - sources: - - llvm-toolchain-xenial-6.0 packages: - clang-6.0 - cppcheck - doxygen - env: MATRIX_EVAL="CC=clang-6.0 && CXX=clang++-6.0" CHECK="true" - # The default clang on xenial is clang 7.0 - - os: linux - dist: xenial - compiler: clang + env: CHECK="true" # osx - os: osx osx_image: xcode9.4 @@ -77,9 +99,6 @@ before_install: - if [ "$TRAVIS_OS_NAME" = "linux" ]; then eval "${MATRIX_EVAL}"; if [ -n "$MATRIX_EVAL" ] && [ "$TRAVIS_COMPILER" != "clang" ]; then - sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6B05F25D762E3157; - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test; - sudo apt-get update -qq; sudo apt-get install -y $CC; fi; fi From dd08b70e468b182da48a3b8f7e06d002dd53c069 Mon Sep 17 00:00:00 2001 From: andy5995 Date: Fri, 26 Jul 2019 23:15:06 -0500 Subject: [PATCH 10/12] manually use apt-get to install packages on bionic --- .travis.yml | 41 ++++++++++++++--------------------------- 1 file changed, 14 insertions(+), 27 deletions(-) diff --git a/.travis.yml b/.travis.yml index 2f04734..db36768 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,12 +24,6 @@ matrix: - os: linux dist: bionic compiler: gcc - addons: - apt: - packages: - - valgrind - - cppcheck - - doxygen env: CHECK="true" - os: linux dist: bionic @@ -38,44 +32,32 @@ matrix: # clang # xenial -# The default clang on xenial is clang 7.0 - os: linux dist: xenial compiler: clang addons: apt: + sources: + - llvm-toolchain-xenial-5.0 packages: - - clang-6.0 - - cppcheck - - doxygen - env: CHECK="true" - -# bionic + - clang-5.0 + env: MATRIX_EVAL="CC=clang-5.0 && CXX=clang++-5.0" - os: linux - dist: bionic + dist: compiler: clang addons: apt: sources: - - llvm-toolchain-bionic-5.0 + - llvm-toolchain-xenial-6.0 packages: - - clang-5.0 - env: MATRIX_EVAL="CC=clang-5.0 && CXX=clang++-5.0" - - os: linux - dist: bionic - compiler: clang + - clang-6.0 env: MATRIX_EVAL="CC=clang-6.0 && CXX=clang++-6.0" - + +# bionic # The default clang on bionic is clang 7.0 - os: linux dist: bionic compiler: clang - addons: - apt: - packages: - - clang-6.0 - - cppcheck - - doxygen env: CHECK="true" # osx - os: osx @@ -108,9 +90,14 @@ before_script: script: - make + # when using bionic, Travis seems to ignore the "addons" section, so installing the packages with apt-get... - if [ -n "$CHECK" ]; then if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew install doxygen; + else + if [ "$TRAVIS_DIST" = "bionic" ]; then + sudo apt-get install -y valgrind cppcheck doxygen; + fi; fi; make distcheck; if type cppcheck &> /dev/null ; then cppcheck --error-exitcode=1 --quiet *.h *.c tests/ ; fi; From 4f69529a048bbaead5b4efba81be39b118f6b955 Mon Sep 17 00:00:00 2001 From: andy5995 Date: Fri, 26 Jul 2019 23:36:01 -0500 Subject: [PATCH 11/12] add missing dist --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index db36768..9a28e5b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -43,7 +43,7 @@ matrix: - clang-5.0 env: MATRIX_EVAL="CC=clang-5.0 && CXX=clang++-5.0" - os: linux - dist: + dist: xenial compiler: clang addons: apt: From 509600a7f7cd67eecf373724641f2017fce0d7e1 Mon Sep 17 00:00:00 2001 From: andy5995 Date: Fri, 26 Jul 2019 23:51:18 -0500 Subject: [PATCH 12/12] add xenial default clang with CHECK enabled --- .travis.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 9a28e5b..222aa7f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -53,8 +53,19 @@ matrix: - clang-6.0 env: MATRIX_EVAL="CC=clang-6.0 && CXX=clang++-6.0" + # clang-7 is the default on xenial and bionic + - os: linux + dist: xenial + compiler: clang + addons: + apt: + packages: + - valgrind + - cppcheck + - doxygen + env: CHECK="true" + # bionic - # The default clang on bionic is clang 7.0 - os: linux dist: bionic compiler: clang