From ff3fdb62cd39a692dc3394ae580dd1202274db44 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Wed, 17 Jun 2015 07:29:22 +0200 Subject: [PATCH 1/5] enable valgrind suppressions for QA previews --- CMakeLists.txt | 2 +- s/preview | 3 ++- s/runtests | 1 + s/travis-build | 5 +++-- {tests => share}/ubuntu-12_04.supp | 0 5 files changed, 7 insertions(+), 4 deletions(-) rename {tests => share}/ubuntu-12_04.supp (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 800851655..004248570 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -73,4 +73,4 @@ add_subdirectory (src eressea) install(DIRECTORY res conf DESTINATION ${CMAKE_INSTALL_PREFIX} FILES_MATCHING PATTERN "*.xml") install(DIRECTORY res conf DESTINATION ${CMAKE_INSTALL_PREFIX} FILES_MATCHING PATTERN "*.json") install(DIRECTORY scripts DESTINATION ${CMAKE_INSTALL_PREFIX} FILES_MATCHING PATTERN "*.lua") - +install(DIRECTORY share DESTINATION ${CMAKE_INSTALL_PREFIX}) diff --git a/s/preview b/s/preview index 12752738f..bb336a5f8 100755 --- a/s/preview +++ b/s/preview @@ -80,10 +80,11 @@ ln -f $LIVE/data/$turn.dat data/ rm -rf reports mkdir -p reports +SUPP="$SERVER/share/ubuntu-12_04.supp" SERVER="$SOURCE/build-x86_64-gcc-Debug/eressea/eressea" VALGRIND=$(which valgrind) if [ ! -z $VALGRIND ]; then -SERVER="$VALGRIND --leak-check=no $SERVER" +SERVER="$VALGRIND --suppressions=$SUPP --error-exitcode=1 --leak-check=no $SERVER" fi $SERVER -v$verbose -t$turn -re$game $SOURCE/scripts/run-turn.lua let turn=$turn+1 diff --git a/s/runtests b/s/runtests index eaf4ba8d8..df0777ca9 100755 --- a/s/runtests +++ b/s/runtests @@ -7,6 +7,7 @@ while [ ! -d $ROOT/.git ]; do done MACHINE=`uname -m` +[ -z "$CC" ] && [ ! -z `which clang` ] && CC="clang" [ -z "$CC" ] && [ ! -z `which gcc` ] && CC="gcc" [ -z "$CC" ] && [ ! -z `which tcc` ] && CC="tcc" [ -z "$CC" ] && [ ! -z `which cc` ] && CC="cc" diff --git a/s/travis-build b/s/travis-build index 29efda196..b34340266 100755 --- a/s/travis-build +++ b/s/travis-build @@ -2,6 +2,7 @@ set -e ROOT=`pwd` +SUPP=../share/ubuntu-12_04.supp MACHINE=`uname -m` [ -z "$CC" ] && [ ! -z `which gcc` ] && CC="gcc" [ -z "$CC" ] && [ ! -z `which tcc` ] && CC="tcc" @@ -25,13 +26,13 @@ make test_valgrind_report () { cd $ROOT/tests ln -sf ../scripts/config.lua -valgrind --suppressions=ubuntu-12_04.supp --error-exitcode=1 $BUILD/eressea/eressea -v0 -t184 ../scripts/reports.lua +valgrind --suppressions=$SUPP --error-exitcode=1 $BUILD/eressea/eressea -v0 -t184 ../scripts/reports.lua } test_valgrind_turn () { cd $ROOT/tests ln -sf ../scripts/config.lua -valgrind --suppressions=ubuntu-12_04.supp --error-exitcode=1 $BUILD/eressea/eressea -v0 -t184 ../scripts/run-turn.lua +valgrind --suppressions=$SUPP --error-exitcode=1 $BUILD/eressea/eressea -v0 -t184 ../scripts/run-turn.lua } test_unittests() { diff --git a/tests/ubuntu-12_04.supp b/share/ubuntu-12_04.supp similarity index 100% rename from tests/ubuntu-12_04.supp rename to share/ubuntu-12_04.supp From 32bd8c4353de4ff7afff57b0fa79cf5af7d81be3 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Wed, 17 Jun 2015 07:50:35 +0200 Subject: [PATCH 2/5] make preview script valgrind use suppression file, closing issue #154 --- s/build | 1 + s/preview | 13 ++++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/s/build b/s/build index 068a669a1..2f689a1f9 100755 --- a/s/build +++ b/s/build @@ -6,6 +6,7 @@ done [ -z $BUILD ] && BUILD=Debug MACHINE=`uname -m` +[ -z "$CC" ] && [ ! -z `which clang` ] && CC="clang" [ -z "$CC" ] && [ ! -z `which gcc` ] && CC="gcc" [ -z "$CC" ] && [ ! -z `which tcc` ] && CC="tcc" [ -z "$CC" ] && [ ! -z `which cc` ] && CC="cc" diff --git a/s/preview b/s/preview index bb336a5f8..bafbae3ac 100755 --- a/s/preview +++ b/s/preview @@ -1,5 +1,12 @@ #!/bin/bash +MACHINE=`uname -m` +[ -z "$CC" ] && [ ! -z `which clang` ] && CC="clang" +[ -z "$CC" ] && [ ! -z `which gcc` ] && CC="gcc" +[ -z "$CC" ] && [ ! -z `which tcc` ] && CC="tcc" +[ -z "$CC" ] && [ ! -z `which cc` ] && CC="cc" +BUILD="build-$MACHINE-$CC-Debug" + function usage() { cat <] [-g ] [-f ] command [args] @@ -80,8 +87,8 @@ ln -f $LIVE/data/$turn.dat data/ rm -rf reports mkdir -p reports -SUPP="$SERVER/share/ubuntu-12_04.supp" -SERVER="$SOURCE/build-x86_64-gcc-Debug/eressea/eressea" +SUPP="$SOURCE/share/ubuntu-12_04.supp" +SERVER="$SOURCE/$BUILD/eressea/eressea" VALGRIND=$(which valgrind) if [ ! -z $VALGRIND ]; then SERVER="$VALGRIND --suppressions=$SUPP --error-exitcode=1 --leak-check=no $SERVER" @@ -148,7 +155,7 @@ case "$1" in ;; "run") if [ $turn -eq 0 ]; then - [ -f $LIVE/turn ] || abort "missing turn file, and no turn specified" + [ -f $LIVE/turn ] || abort "missing turn file in $LIVE, and no turn specified" let turn=$(cat $LIVE/turn)-1 fi run From e6b3a6da65f3644ccc1324aecd89dde2733e1558 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Wed, 17 Jun 2015 07:54:56 +0200 Subject: [PATCH 3/5] suppress valgrind warning form issue #227 --- src/battle.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/battle.c b/src/battle.c index db2dbc3ca..9fb58751d 100644 --- a/src/battle.c +++ b/src/battle.c @@ -901,7 +901,9 @@ static void rmtroop(troop dt) rmfighter(df, 1); assert(dt.index >= 0 && dt.index < df->unit->number); - df->person[dt.index] = df->person[df->alive - df->removed]; + if (dt.index!=df->alive-df->removed) { + df->person[dt.index] = df->person[df->alive - df->removed]; + } if (df->removed) { df->person[df->alive - df->removed] = df->person[df->alive]; } From 52578486487fdf8cf60751b9e14a2b5ca1298c35 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Wed, 17 Jun 2015 08:06:01 +0200 Subject: [PATCH 4/5] do not install crontab, except on eresseaserver. fixes issue #226 --- s/install | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/s/install b/s/install index 39c91174a..9d2d5f4b0 100755 --- a/s/install +++ b/s/install @@ -2,7 +2,7 @@ ROOT=$(pwd) while [ ! -d $ROOT/.git ]; do ROOT=$(dirname $ROOT) - if [ "$ROOT" == "/" ; then + if [ "/" = "$ROOT" ]; then echo "could not find root, are you in the git repository?" exit fi @@ -25,4 +25,8 @@ programs="create-orders backup-eressea run-turn" for prg in ${programs} ; do install -v $ROOT/process/$prg $DEST/bin/ done -crontab $ROOT/process/cron/crontab + +# install crontab, but only on the eressea server: +HOST=`hostname` + +[ "eressea" = "$HOST" ] && crontab $ROOT/process/cron/crontab From b630c9ee457dcb383d9a7e09f80209e2825ecdd9 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Wed, 17 Jun 2015 08:07:47 +0200 Subject: [PATCH 5/5] oops. the name of the server is gruenbaer, not eressea --- s/install | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/s/install b/s/install index 9d2d5f4b0..a59c8aa46 100755 --- a/s/install +++ b/s/install @@ -29,4 +29,4 @@ done # install crontab, but only on the eressea server: HOST=`hostname` -[ "eressea" = "$HOST" ] && crontab $ROOT/process/cron/crontab +[ "gruenbaer" = "$HOST" ] && crontab $ROOT/process/cron/crontab