Fix tst_QGuiApplication for embedded platforms using eglfs QPA

Disable input and cursor for QGuiApplication instances used in
autotest to initialize it properly.

Change-Id: I78dc9b776269c082c20f244a51f858289129275d
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
This commit is contained in:
Pasi Petäjäjärvi 2015-09-09 15:45:18 +03:00
parent c258422cf9
commit 4b2db07b42
2 changed files with 16 additions and 5 deletions

View File

@ -41,12 +41,7 @@
#include <private/qeventloop_p.h>
#include <private/qthread_p.h>
#ifdef QT_GUI_LIB
#include <QtGui/QGuiApplication>
typedef QGuiApplication TestApplication;
#else
typedef QCoreApplication TestApplication;
#endif
class EventSpy : public QObject
{

View File

@ -60,6 +60,7 @@ class tst_QGuiApplication: public tst_QCoreApplication
Q_OBJECT
private slots:
void initTestCase();
void cleanup();
void displayName();
void firstWindowTitle();
@ -84,6 +85,21 @@ private slots:
void settableStyleHints(); // Needs to run last as it changes style hints.
};
void tst_QGuiApplication::initTestCase()
{
#ifdef QT_QPA_DEFAULT_PLATFORM_NAME
if ((QString::compare(QStringLiteral(QT_QPA_DEFAULT_PLATFORM_NAME),
QStringLiteral("eglfs"), Qt::CaseInsensitive) == 0) ||
(QString::compare(QString::fromLatin1(qgetenv("QT_QPA_PLATFORM")),
QStringLiteral("eglfs"), Qt::CaseInsensitive) == 0)) {
// Set env variables to disable input and cursor because eglfs is single fullscreen window
// and trying to initialize input and cursor will crash test.
qputenv("QT_QPA_EGLFS_DISABLE_INPUT", "1");
qputenv("QT_QPA_EGLFS_HIDECURSOR", "1");
}
#endif
}
void tst_QGuiApplication::cleanup()
{
QVERIFY(QGuiApplication::allWindows().isEmpty());