diff options
| -rw-r--r-- | src/src.pro | 7 | ||||
| -rwxr-xr-x | tests/travis/build-and-test | 26 |
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" |
