aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2014-07-21 02:53:25 +0200
committerJeremy Lainé <jeremy.laine@m4x.org>2014-07-21 02:53:25 +0200
commitab4b582dfcdb265a5c904ca5473dfbf5678cf973 (patch)
tree68ab683cb70df4d7e6810c22b47e548662c62a5e
parent8e45939a08a9ab20710d4c75bd0824582abed749 (diff)
downloadqxmpp-ab4b582dfcdb265a5c904ca5473dfbf5678cf973.tar.gz
add support for profiling / test coverage
-rw-r--r--src/src.pro7
-rwxr-xr-xtests/travis/build-and-test26
2 files changed, 27 insertions, 6 deletions
diff --git a/src/src.pro b/src/src.pro
index 6d4aa331..44d8495d 100644
--- a/src/src.pro
+++ b/src/src.pro
@@ -40,3 +40,10 @@ equals(QXMPP_LIBRARY_TYPE,staticlib) {
QMAKE_PKGCONFIG_CFLAGS = -DQXMPP_SHARED
}
unix:QMAKE_CLEAN += -r pkgconfig lib$${TARGET}.prl
+
+# profiling support
+equals(QXMPP_PROFILE,true) {
+ QMAKE_CXXFLAGS += -fprofile-arcs -ftest-coverage
+ QMAKE_LIBS += -lgcov
+ QMAKE_CLEAN += *.gcda *.gcov *.gcno
+}
diff --git a/tests/travis/build-and-test b/tests/travis/build-and-test
index b0658ec2..72abdb80 100755
--- a/tests/travis/build-and-test
+++ b/tests/travis/build-and-test
@@ -1,30 +1,44 @@
#!/bin/sh
set -e
-BUILD_FLAGS=""
+QMAKE_ARGS="QXMPP_PROFILE=true"
if [ -n "$CC" ]; then
- BUILD_FLAGS="$BUILD_FLAGS QMAKE_CC=$CC"
+ QMAKE_ARGS="$QMAKE_ARGS QMAKE_CC=$CC"
fi
if [ -n "$CXX" ]; then
- BUILD_FLAGS="$BUILD_FLAGS QMAKE_CXX=$CXX"
+ QMAKE_ARGS="$QMAKE_ARGS QMAKE_CXX=$CXX"
fi
case "$CONFIG" in
full*)
- BUILD_FLAGS="$BUILD_FLAGS QXMPP_USE_SPEEX=1 QXMPP_USE_THEORA=1"
+ QMAKE_ARGS="$QMAKE_ARGS QXMPP_USE_SPEEX=1 QXMPP_USE_THEORA=1"
;;
esac
case "$CONFIG" in
*static)
- BUILD_FLAGS="$BUILD_FLAGS QXMPP_LIBRARY_TYPE=staticlib"
+ QMAKE_ARGS="$QMAKE_ARGS QXMPP_LIBRARY_TYPE=staticlib"
;;
esac
-qmake $BUILD_FLAGS
+# compile
+qmake $QMAKE_ARGS
make VERBOSE=1
+# run tests
tests/run.py
+exit 0
+
+# generate coverage report
+TRACEFILE=coverage.info
+rm -f $TRACEFILE
+lcov --capture --directory src -o $TRACEFILE --no-external
+lcov --remove $TRACEFILE \*moc_\* -o $TRACEFILE.clean
+mv $TRACEFILE.clean $TRACEFILE
+
+rm -rf coverage
+genhtml -o coverage $TRACEFILE
+echo "ok"