[Development] Code Coverage Statistics for QtBase

Paeglis Gatis Gatis.Paeglis at theqtcompany.com
Thu Feb 19 16:57:30 CET 2015

> Why can they be ignored?

I mean, we use only some of the API from that library, but bundle all of it. If it is not fully covered by tests it is not an issue.

From: Hausmann Simon
Sent: Thursday, February 19, 2015 4:51 PM
To: Paeglis Gatis; Sébastien Fricker; development
Subject: Re: [Development] Code Coverage Statistics for QtBase

Why can they be ignored? When the users run Qt applications that code is executed, so coverage is important IMO.

However if the added code is from build tools (Code generators) then maybe it's not so critical, as long as the generated code is covered.

That said, the results look incomplete to me. Qxc‎bwindow.cpp surely has non-zero coverage when running tests on X11.


From: Paeglis Gatis
Sent: Thursday, February 19, 2015 23:45
To: Sébastien Fricker; development
Subject: Re: [Development] Code Coverage Statistics for QtBase

Many of those files are from 3rdparty code, the ones I recognize are from /qtbase/src/3rdparty/xkbcommon, those I think can

be ignored when thinking from code coverage point of view.

From: development-bounces+gatis.paeglis=theqtcompany.com at qt-project.org <development-bounces+gatis.paeglis=theqtcompany.com at qt-project.org> on behalf of Sébastien Fricker <fricker at froglogic.com>
Sent: Thursday, February 19, 2015 3:51 PM
To: development
Subject: [Development] Code Coverage Statistics for QtBase

According http://download.froglogic.com/public/qt5-squishcoco-report/ there is a big decrease of the code coverage between Qt5/dev and Qt5.4.
The code coverage from QtBase is decreasing from 56% to 42%.

The first reason of that, is that approximately 100 new files get added into the project and the code coverage of this set is near to zero (see the HTML attachment and the table below).
This new uncovered files are responsible of a lost of the code coverage of 3% approximately.
Question: are these files not tested through an unit test? If they are tested, I need to look why they are not taken in account by the code coverage analysis.

The main difference are caused by the code coverage of the unit tests itself.
The number of unit tests did not decrease, but the code coverage of the tests with the status Unknown decrease from 13% (from 43% to 30%) and this explain the rest of the code coverage lost.
These tests are in fact the code coverage of the code which is running before and after a unit test (setup the GUI, common initializations executed before main(), exit code, ...).
Question: are they changes between Qt5.4 and Qt5/dev in QTestLib (in the unit tests or in QtBase) which could explain this?


List of new files:
Source  Coverage (1 means 100%)

action.c        0
ast-build.c     0
atom.c  0
compat.c        0
context-priv.c  0
context.c       0
expr.c  0
include.c       0
keycodes.c      0
keymap-dump.c   0
keymap-priv.c   0
keymap.c        0
keysym-utf.c    0
keysym.c        0
keywords.c      0
parser.c        0
parser.y        0
qbasicfontdatabase.cpp  0
qdbusmenuadaptor.cpp    0
qdbusmenuconnection.cpp 0
qdbusmenutypes.cpp      0
qdbusplatformmenu.cpp   0
qdbustrayicon.cpp       0
qdbustraytypes.cpp      0
qdevicediscovery_udev.cpp       0
qeglconvenience.cpp     0
qeglfscontext.cpp       0
qeglfsdeviceintegration.cpp     0
qeglfshooks.cpp 0
qeglfsintegration.cpp   0
qeglfsoffscreenwindow.cpp       0
qeglfsscreen.cpp        0
qeglfswindow.cpp        0
qeglpbuffer.cpp 0
qeglplatformcontext.cpp 0
qeglplatformcursor.cpp  0
qeglplatformintegration.cpp     0
qeglplatformscreen.cpp  0
qeglplatformwindow.cpp  0
qevdevkeyboardhandler.cpp       0
qevdevkeyboardmanager.cpp       0
qevdevmousehandler.cpp  0
qevdevmousemanager.cpp  0
qevdevtablet.cpp        0
qevdevtouch.cpp 0
qeventdispatcher_glib.cpp       0
qfbbackingstore.cpp     0
qfbcursor.cpp   0
qfbscreen.cpp   0
qfbvthandler.cpp        0
qfbwindow.cpp   0
qfontconfigdatabase.cpp 0
qfontengine_ft.cpp      0
qfontenginemultifontconfig.cpp  0
qgenericunixeventdispatcher.cpp 0
qgenericunixservices.cpp        0
qgenericunixthemes.cpp  0
qglxconvenience.cpp     0
qinputdevicemanager.cpp 0
qopenglcompositor.cpp   0
qopenglcompositorbackingstore.cpp       0
qopenglfunctions_4_4_compatibility.cpp  0
qopenglfunctions_4_4_core.cpp   0
qopenglfunctions_4_5_compatibility.cpp  0
qopenglfunctions_4_5_core.cpp   0
qplatformgraphicsbuffer.cpp     0
qplatformgraphicsbufferhelper.cpp       0
qsslellipticcurve.cpp   0
qsslpresharedkeyauthenticator.cpp       0
qstatusnotifieritemadaptor.cpp  0
qunixeventdispatcher.cpp        0
qxcbbackingstore.cpp    0
qxcbclipboard.cpp       0
qxcbconnection.cpp      0
qxcbconnection_xi2.cpp  0
qxcbcursor.cpp  0
qxcbdrag.cpp    0
qxcbglintegration.cpp   0
qxcbglintegrationfactory.cpp    0
qxcbimage.cpp   0
qxcbintegration.cpp     0
qxcbkeyboard.cpp        0
qxcbmime.cpp    0
qxcbnativeinterface.cpp 0
qxcbnativeinterfacehandler.cpp  0
qxcbscreen.cpp  0
qxcbsessionmanager.cpp  0
qxcbsystemtraytracker.cpp       0
qxcbwindow.cpp  0
qxcbwmsupport.cpp       0
qxcbxsettings.cpp       0
qxdgnotificationproxy.cpp       0
qxlibeglintegration.cpp 0
rules.c 0
scanner.c       0
state.c 0
symbols.c       0
text.c  0
types.c 0
utf8.c  0
utils.c 0
vmod.c  0
xkb-compat.c    0
xkb-keymap.c    0
xkbcomp.c       0
forkfd.c        0,2841726619
qsharedmemory_systemv.cpp       0,5789473684
qsystemsemaphore_systemv.cpp    0,78125
qsslellipticcurve_openssl.cpp   1

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20150219/4a16f6d0/attachment.html>

More information about the Development mailing list