Run tst_QEventDispatcher with the GUI event dispatchers as well

Since some GUI event dispatchers are complete reimplementations and do
not build on the corelib ones, we want to run the same tests with the
other dispatcher.

Since this is a GUI test now, we need to make sure to drain system
events queued during application startup to make sure we can reliably
run the test functions.

Change-Id: I4905db70bc8f8584c4ef1f4d767824040281452c
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
bb10
Bradley T. Hughes 2012-01-23 08:52:13 +01:00 committed by Qt by Nokia
parent c50f026a22
commit 358c14821b
3 changed files with 21 additions and 1 deletions

View File

@ -39,7 +39,11 @@
**
****************************************************************************/
#include <QtCore/QCoreApplication>
#ifdef QT_GUI_LIB
# include <QtGui/QGuiApplication>
#else
# include <QtCore/QCoreApplication>
#endif
#include <QtTest/QtTest>
enum {
@ -68,6 +72,7 @@ public:
{ }
private slots:
void initTestCase();
void registerTimer();
/* void registerSocketNotifier(); */ // Not implemented here, see tst_QSocketNotifier instead
/* void registerEventNotifiier(); */ // Not implemented here, see tst_QWinEventNotifier instead
@ -88,6 +93,16 @@ bool tst_QEventDispatcher::event(QEvent *e)
return QObject::event(e);
}
// drain the system event queue after the test starts to avoid destabilizing the test functions
void tst_QEventDispatcher::initTestCase()
{
QElapsedTimer elapsedTimer;
elapsedTimer.start();
while (!elapsedTimer.hasExpired(CoarseTimerInterval) && eventDispatcher->processEvents(QEventLoop::AllEvents)) {
;
}
}
// test that the eventDispatcher's timer implementation is complete and working
void tst_QEventDispatcher::registerTimer()
{

View File

@ -4,6 +4,7 @@ SUBDIRS=\
qdrag \
qevent \
qfileopenevent \
qguieventdispatcher \
qguimetatype \
qguivariant \
qinputmethod \

View File

@ -0,0 +1,4 @@
CONFIG += testcase
TARGET = tst_qguieventdispatcher
QT = core gui testlib
SOURCES += ../../../corelib/kernel/qeventdispatcher/tst_qeventdispatcher.cpp