From 88184d142bc4a61aa47102345218470873d1de8d Mon Sep 17 00:00:00 2001 From: Christopher Dunn Date: Wed, 22 Apr 2015 19:43:27 -0700 Subject: [PATCH] run valgrind in Travis CI Because this runs apt-get, it will not work as-is for OSX. So when we have OSX in Travis, we will have to wrap this somehow. See #250. Closes #222. --- .travis.yml | 12 ++++++++++-- dev.makefile | 3 +++ travis.sh | 29 +++++++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 2 deletions(-) create mode 100755 travis.sh diff --git a/.travis.yml b/.travis.yml index a0e84a3..17e52dc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,12 +2,20 @@ # http://about.travis-ci.org/docs/user/build-configuration/ # This file can be validated on: # http://lint.travis-ci.org/ -before_install: sudo apt-get install cmake + +#before_install: sudo apt-get install -y cmake +# cmake is pre-installed in Travis for both linux and osx + +before_install: + - sudo apt-get update -qq + - sudo apt-get install -qq valgrind +os: + - linux language: cpp compiler: - gcc - clang -script: cmake -DJSONCPP_WITH_CMAKE_PACKAGE=$CMAKE_PKG -DBUILD_SHARED_LIBS=$SHARED_LIB -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_VERBOSE_MAKEFILE=$VERBOSE_MAKE . && make && make jsoncpp_check +script: ./travis.sh env: matrix: - SHARED_LIB=ON STATIC_LIB=ON CMAKE_PKG=ON BUILD_TYPE=release VERBOSE_MAKE=false diff --git a/dev.makefile b/dev.makefile index e289266..d288b16 100644 --- a/dev.makefile +++ b/dev.makefile @@ -26,6 +26,9 @@ test-amalgamate: python3.4 amalgamate.py cd dist; gcc -I. -c jsoncpp.cpp +valgrind: + valgrind --error-exitcode=42 --leak-check=full ./build/debug/src/test_lib_json/jsoncpp_test + clean: \rm -rf *.gz *.asc dist/ diff --git a/travis.sh b/travis.sh new file mode 100755 index 0000000..2b25f47 --- /dev/null +++ b/travis.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env sh +# This is called by `.travis.yml` via Travis CI. +# Travis supplies $TRAVIS_OS_NAME. +# http://docs.travis-ci.com/user/multi-os/ +# Our .travis.yml also defines: +# - SHARED_LIB=ON/OFF +# - STATIC_LIB=ON/OFF +# - CMAKE_PKG=ON/OFF +# - BUILD_TYPE=release/debug +# - VERBOSE_MAKE=false/true +# - VERBOSE (set or not) + +# -e: fail on error +# -v: show commands +# -x: show expanded commands +set -vex + +env | sort + +cmake -DJSONCPP_WITH_CMAKE_PACKAGE=$CMAKE_PKG -DBUILD_SHARED_LIBS=$SHARED_LIB -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_VERBOSE_MAKEFILE=$VERBOSE_MAKE . +make + +# Python is not available in Travis for osx. +# https://github.com/travis-ci/travis-ci/issues/2320 +if [ "$TRAVIS_OS_NAME" != "osx" ] +then + make jsoncpp_check + valgrind --error-exitcode=42 --leak-check=full ./src/test_lib_json/jsoncpp_test +fi