From 4b2db07b42dc0be28beafbd20d005cc0b7b11fc5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pasi=20Pet=C3=A4j=C3=A4j=C3=A4rvi?=
 <pasi.petajajarvi@theqtcompany.com>
Date: Wed, 9 Sep 2015 15:45:18 +0300
Subject: [PATCH] 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>
---
 .../qcoreapplication/tst_qcoreapplication.cpp    |  5 -----
 .../qguiapplication/tst_qguiapplication.cpp      | 16 ++++++++++++++++
 2 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/tests/auto/corelib/kernel/qcoreapplication/tst_qcoreapplication.cpp b/tests/auto/corelib/kernel/qcoreapplication/tst_qcoreapplication.cpp
index efecf31d66f..60e358232e3 100644
--- a/tests/auto/corelib/kernel/qcoreapplication/tst_qcoreapplication.cpp
+++ b/tests/auto/corelib/kernel/qcoreapplication/tst_qcoreapplication.cpp
@@ -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
 {
diff --git a/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp b/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp
index 19365bffdd9..d573d974955 100644
--- a/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp
+++ b/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp
@@ -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());
-- 
GitLab