Merge lp:~om26er/phablet-extras/unittests_coverage into lp:~phablet-team/phablet-extras/qtmultimedia-touch

Proposed by Omer Akram
Status: Needs review
Proposed branch: lp:~om26er/phablet-extras/unittests_coverage
Merge into: lp:~phablet-team/phablet-extras/qtmultimedia-touch
Diff against target: 152 lines (+114/-1)
4 files modified
debian/patches/enable_coverage.patch (+87/-0)
debian/patches/series (+2/-0)
debian/patches/skip_failing_tests.patch (+20/-0)
debian/rules (+5/-1)
To merge this branch: bzr merge lp:~om26er/phablet-extras/unittests_coverage
Reviewer Review Type Date Requested Status
Ubuntu Phablet Team Pending
Review via email: mp+198269@code.launchpad.net

Commit message

Run unit tests during build, add code coverage target for CI

Description of the change

Run unit tests during build, add code coverage target for CI

To post a comment you must log in.
90. By Omer Akram

build with coverage enabled

Unmerged revisions

90. By Omer Akram

build with coverage enabled

89. By Omer Akram

add coverage target

88. By Omer Akram

disable unreliable unittests

87. By Omer Akram

run unittests during build

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file 'debian/patches/enable_coverage.patch'
2--- debian/patches/enable_coverage.patch 1970-01-01 00:00:00 +0000
3+++ debian/patches/enable_coverage.patch 2013-12-09 18:09:44 +0000
4@@ -0,0 +1,87 @@
5+=== added file 'coverage.pri'
6+--- a/coverage.pri 1970-01-01 00:00:00 +0000
7++++ b/coverage.pri 2013-12-05 13:19:46 +0000
8+@@ -0,0 +1,44 @@
9++# Coverage
10++CONFIG(coverage) {
11++ LIBS += -lgcov
12++ QMAKE_CXXFLAGS += --coverage
13++ QMAKE_LDFLAGS += --coverage
14++
15++ QMAKE_EXTRA_TARGETS += clean-gcno clean-gcda coverage-html \
16++ generate-coverage-html clean-coverage-html coverage-gcovr \
17++ generate-gcovr generate-coverage-gcovr clean-coverage-gcovr
18++
19++ clean-gcno.commands = \
20++ "@echo Removing old coverage instrumentation"; \
21++ "find -name '*.gcno' -print | xargs -r rm"
22++
23++ clean-gcda.commands = \
24++ "@echo Removing old coverage results"; \
25++ "find -name '*.gcda' -print | xargs -r rm"
26++
27++ coverage-html.depends = clean-gcda check generate-coverage-html
28++
29++ generate-coverage-html.commands = \
30++ "@echo Collecting coverage data"; \
31++ "lcov --directory $${TOP_SRC_DIR} --capture --output-file coverage.info --no-checksum --compat-libtool"; \
32++ "lcov --extract coverage.info \"*/src/*.cpp\" -o coverage.info"; \
33++ "lcov --remove coverage.info \"moc_*.cpp\" -o coverage.info"; \
34++ "LANG=C genhtml --prefix $${TOP_SRC_DIR} --output-directory coverage-html --title \"Code Coverage\" --legend --show-details coverage.info"
35++
36++ clean-coverage-html.depends = clean-gcda
37++ clean-coverage-html.commands = \
38++ "lcov --directory $${TOP_SRC_DIR} -z"; \
39++ "rm -rf coverage.info coverage-html"
40++
41++ coverage-gcovr.depends = clean-gcda check generate-coverage-gcovr
42++
43++ generate-coverage-gcovr.commands = \
44++ "@echo Generating coverage GCOVR report"; \
45++ "gcovr -x -r $${TOP_SRC_DIR} -o $${TOP_SRC_DIR}/coverage.xml -e \".*/moc_.*\" -e \"tests/.*\" -e \".*\\.h\""
46++
47++ clean-coverage-gcovr.depends = clean-gcda
48++ clean-coverage-gcovr.commands = \
49++ "rm -rf $${TOP_SRC_DIR}/coverage.xml"
50++
51++ QMAKE_CLEAN += *.gcda *.gcno coverage.info coverage.xml
52++}
53+
54+=== modified file 'qtmultimedia.pro'
55+--- a/qtmultimedia.pro 2013-09-20 19:21:01 +0000
56++++ b/qtmultimedia.pro 2013-12-05 14:04:53 +0000
57+@@ -36,3 +36,4 @@
58+
59+ load(qt_parts)
60+
61++include( coverage.pri )
62+
63+=== modified file 'src/multimedia/multimedia.pro'
64+--- a/src/multimedia/multimedia.pro 2013-09-20 19:21:01 +0000
65++++ b/src/multimedia/multimedia.pro 2013-12-05 14:04:53 +0000
66+@@ -69,3 +69,5 @@
67+ win32:LIBS += -luuid
68+
69+ HEADERS += $$PUBLIC_HEADERS $$PRIVATE_HEADERS
70++
71++include( ../../coverage.pri )
72+
73+=== modified file 'src/multimediawidgets/multimediawidgets.pro'
74+--- a/src/multimediawidgets/multimediawidgets.pro 2013-09-20 19:21:01 +0000
75++++ b/src/multimediawidgets/multimediawidgets.pro 2013-12-05 14:04:53 +0000
76+@@ -54,3 +54,5 @@
77+ }
78+
79+ HEADERS += $$PUBLIC_HEADERS $$PRIVATE_HEADERS
80++
81++include( ../../coverage.pri )
82+
83+=== modified file 'src/src.pro'
84+--- a/src/src.pro 2013-09-20 19:21:01 +0000
85++++ b/src/src.pro 2013-12-05 14:04:53 +0000
86+@@ -45,3 +45,4 @@
87+
88+ SUBDIRS += src_plugins
89+
90++include( ../coverage.pri )
91+
92
93=== modified file 'debian/patches/series'
94--- debian/patches/series 2013-10-02 23:44:09 +0000
95+++ debian/patches/series 2013-12-09 18:09:44 +0000
96@@ -1,1 +1,3 @@
97 add_quick_to_qgsttools.patch
98+skip_failing_tests.patch
99+enable_coverage.patch
100
101=== added file 'debian/patches/skip_failing_tests.patch'
102--- debian/patches/skip_failing_tests.patch 1970-01-01 00:00:00 +0000
103+++ debian/patches/skip_failing_tests.patch 2013-12-09 18:09:44 +0000
104@@ -0,0 +1,20 @@
105+=== modified file 'tests/auto/unit/qmediaplaylist/tst_qmediaplaylist.cpp'
106+--- a/tests/auto/unit/qmediaplaylist/tst_qmediaplaylist.cpp 2013-09-20 19:21:01 +0000
107++++ b/tests/auto/unit/qmediaplaylist/tst_qmediaplaylist.cpp 2013-12-05 16:30:52 +0000
108+@@ -341,6 +341,7 @@
109+
110+ void tst_QMediaPlaylist::saveAndLoad()
111+ {
112++ QSKIP("QTBUG-23826: Is flaky and has been like that for a while");
113+ QMediaPlaylist playlist;
114+ playlist.addMedia(content1);
115+ playlist.addMedia(content2);
116+@@ -649,6 +650,7 @@
117+
118+ void tst_QMediaPlaylist::testLoaded_signal()
119+ {
120++ QSKIP("QTBUG-35420 Is falky and fails at random");
121+ //create an instance of QMediaPlaylist class.
122+ QMediaPlaylist playlist;
123+ playlist.addMedia(content1); //set the media to playlist
124+
125
126=== modified file 'debian/rules'
127--- debian/rules 2013-11-25 14:42:05 +0000
128+++ debian/rules 2013-12-09 18:09:44 +0000
129@@ -16,6 +16,7 @@
130 export CXXFLAGS := $(shell dpkg-buildflags --get CXXFLAGS) $(shell dpkg-buildflags --get CPPFLAGS)
131 export LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS) -Wl,--as-needed
132 export QT_SELECT := qt5
133+export QT_QPA_PLATFORM := minimal
134
135 get-packaged-orig-source:
136 rm -rf $(PKG_source)-$(UPS_version)
137@@ -56,7 +57,7 @@
138 debian/libqt5multimedia5-touch-plugins.preinst
139 sed "s/__ARCH__/$(DEB_HOST_MULTIARCH)/g" -i \
140 debian/libqt5multimedia5-touch-plugins.postrm
141- qmake CONFIG+=mir
142+ qmake CONFIG+=mir CONFIG+=coverage
143
144 override_dh_auto_install-arch:
145 dh_auto_install
146@@ -74,3 +75,6 @@
147 override_dh_builddeb:
148 dh_builddeb -- -Zxz
149
150+override_dh_auto_test:
151+ export LD_LIBRARY_PATH=$(CURDIR)/lib
152+ cd tests/auto/unit/ && ( test -e Makefile || qmake unit.pro -o Makefile ) && make -f Makefile check

Subscribers

People subscribed via source and target branches