CI: Add memleak checking using valgrind (#5350)

Add a new step to check memleaks on our current unit tests suite
This commit is contained in:
Loïc Blot 2017-03-06 20:34:02 +01:00 committed by GitHub
parent 0e27b4b978
commit 9878ce05e7
3 changed files with 15 additions and 1 deletions

@ -22,6 +22,10 @@ matrix:
- env: PLATFORM=Unix COMPILER=clang
compiler: clang
os: linux
- env: PLATFORM=Unix COMPILER=clang VALGRIND=1
compiler: clang
os: linux
dist: trusty
- env: PLATFORM=Unix COMPILER=g++-6
compiler: gcc
os: linux

@ -18,6 +18,9 @@ if [[ $PLATFORM == "Unix" ]]; then
# Linking to LevelDB is broken, use a custom build
wget http://minetest.kitsunemimi.pw/libleveldb-1.18-ubuntu12.04.7z
sudo 7z x -o/usr libleveldb-1.18-ubuntu12.04.7z
if [[ "$VALGRIND" == "1" ]]; then
sudo apt-get install valgrind
fi
else
brew update
brew install freetype gettext hiredis irrlicht jpeg leveldb libogg libvorbis luajit

@ -24,8 +24,15 @@ if [[ $PLATFORM == "Unix" ]]; then
-DBUILD_SERVER=TRUE \
$CMAKE_FLAGS ..
make -j2
echo "Running unit tests."
../bin/minetest --run-unittests && exit 0
CMD="../bin/minetest --run-unittests"
if [[ "$VALGRIND" == "1" ]]; then
valgrind --leak-check=full --leak-check-heuristics=all --undef-value-errors=no --error-exitcode=9 ${CMD} && exit 0
else
${CMD} && exit 0
fi
elif [[ $PLATFORM == Win* ]]; then
[[ $CC == "clang" ]] && exit 1 # Not supposed to happen
# We need to have our build directory outside of the minetest directory because