summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2016-08-20 21:57:16 +0300
committerAndrei Karas <akaras@inbox.ru>2016-08-20 21:59:58 +0300
commit2cba9624614c24908266fa28de6c1eea6dfe1db5 (patch)
tree1aba03f49f08f5bdcf1371d6ef468f8df9d49921
parentcf88350d62b5bbf1c0c2150596e7f2fdc88307c4 (diff)
downloadserverdata-2cba9624614c24908266fa28de6c1eea6dfe1db5.tar.gz
serverdata-2cba9624614c24908266fa28de6c1eea6dfe1db5.tar.bz2
serverdata-2cba9624614c24908266fa28de6c1eea6dfe1db5.tar.xz
serverdata-2cba9624614c24908266fa28de6c1eea6dfe1db5.zip
Add ci tests with valgrind.
-rw-r--r--.gitlab-ci.yml35
-rwxr-xr-x.tools/jobs/runservervalgrind.sh37
2 files changed, 72 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index e98e8b75..5cf0bbd0 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,6 +1,7 @@
stages:
- build
- test
+- valgrind
- fail
- ok
@@ -117,6 +118,40 @@ mariadb_run_latest:
services:
- mariadb:latest
+mysql_run_valgrind_latest:
+ stage: valgrind
+ script:
+ - ./.tools/jobs/install.sh "mysql-client
+ gcc-6
+ git-core
+ make autoconf automake autopoint
+ libtool libmysqlclient-dev libz-dev libpcre3-dev
+ valgrind"
+ - ./.tools/jobs/cloneall.sh
+ - ./.tools/jobs/initdb.sh mysql
+ - ./.tools/jobs/build.sh "--enable-debug --disable-manager --enable-Werror --enable-buildbot" "--enable-werror"
+ - ./.tools/jobs/runservervalgrind.sh mysql
+ image: debian:unstable
+ services:
+ - mysql:latest
+
+mariadb_run_valgrind_latest:
+ stage: valgrind
+ script:
+ - ./.tools/jobs/install.sh "mysql-client
+ gcc-6
+ git-core
+ make autoconf automake autopoint
+ libtool libmysqlclient-dev libz-dev libpcre3-dev
+ valgrind"
+ - ./.tools/jobs/cloneall.sh
+ - ./.tools/jobs/initdb.sh mariadb
+ - ./.tools/jobs/build.sh "--enable-debug --disable-manager --enable-Werror --enable-buildbot" "--enable-werror"
+ - ./.tools/jobs/runservervalgrind.sh mariadb
+ image: debian:unstable
+ services:
+ - mysql:latest
+
ok_job:
stage: ok
script:
diff --git a/.tools/jobs/runservervalgrind.sh b/.tools/jobs/runservervalgrind.sh
new file mode 100755
index 00000000..6442b091
--- /dev/null
+++ b/.tools/jobs/runservervalgrind.sh
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+source ./.tools/scripts/init.sh
+
+function run_server {
+ echo "running: $1 --run-once $2"
+ valgrind -q --read-var-info=yes --track-origins=yes --malloc-fill=11 --free-fill=55 --show-reachable=yes --leak-check=full --leak-resolution=high --partial-loads-ok=yes --error-limit=no $1 --run-once $2 2>runlog.txt
+ export errcode=$?
+ export teststr=$(grep "invalid" runlog.txt)
+ cat runlog.txt
+ if [[ -n "${teststr}" ]]; then
+ echo "Errors found in running server $1."
+ exit 1
+ else
+ echo "No errors found for server $1."
+ fi
+ if [ ${errcode} -ne 0 ]; then
+ echo "server $1 terminated with exit code ${errcode}"
+ echo "Test failed"
+ exit 1
+ fi
+}
+
+do_init_tools
+init_configs $1
+
+cd server-data
+pwd
+ls -la
+
+run_server ./login-server
+run_server ./char-server
+
+ARGS="--load-script npc/dev/test.txt "
+ARGS="--load-plugin script_mapquit $ARGS --load-script npc/dev/ci_test.txt"
+
+run_server ./map-server "$ARGS"