diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2014-07-21 02:53:25 +0200 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2014-07-21 02:53:25 +0200 |
| commit | ab4b582dfcdb265a5c904ca5473dfbf5678cf973 (patch) | |
| tree | 68ab683cb70df4d7e6810c22b47e548662c62a5e | |
| parent | 8e45939a08a9ab20710d4c75bd0824582abed749 (diff) | |
| download | qxmpp-ab4b582dfcdb265a5c904ca5473dfbf5678cf973.tar.gz | |
add support for profiling / test coverage
| -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" |
