From 7491c1996a794cfe2e26cb9be56bd3f2cdd92e21 Mon Sep 17 00:00:00 2001 From: Takatoshi Kondo Date: Tue, 9 Sep 2014 13:38:07 +0900 Subject: [PATCH] Added memory checking for travis-ci cmake build. --- .travis.yml | 1 + CMakeLists.txt | 3 +++ ci/build_cmake.sh | 18 +++++++++++++++++- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f0238471..9475e13e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,6 +9,7 @@ before_install: - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test - sudo apt-get update -qq - sudo apt-get update + - sudo apt-get install valgrind - sudo apt-get install libgtest-dev - "cd /usr/src/gtest && sudo cmake . && sudo cmake --build . && sudo mv libg* /usr/local/lib/ ; cd -" install: diff --git a/CMakeLists.txt b/CMakeLists.txt index ad9db212..7c2dcceb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -158,6 +158,9 @@ SET_TARGET_PROPERTIES (msgpack PROPERTIES SOVERSION 3 VERSION 4.0.0) IF (MSGPACK_BUILD_TESTS) ENABLE_TESTING () + SET(CTEST_MEMORYCHECK_COMMAND "/usr/bin/valgrind") + INCLUDE(Dart) + SET(MEMORYCHECK_COMMAND_OPTIONS "--leak-check=full --error-exitcode=1") ADD_SUBDIRECTORY (test) ENDIF () diff --git a/ci/build_cmake.sh b/ci/build_cmake.sh index 24a8afe3..4f57fe9b 100755 --- a/ci/build_cmake.sh +++ b/ci/build_cmake.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash mkdir build @@ -53,4 +53,20 @@ then exit $ret fi +ctest -T memcheck | tee memcheck.log + +ret=${PIPESTATUS[0]} +if [ $ret -ne 0 ] +then + exit $ret +fi + +cat memcheck.log | grep "Memory Leak" > /dev/null + +ret=$? +if [ $ret -eq 0 ] +then + exit 1 +fi + exit 0