summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2010-10-08 02:30:50 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2010-10-08 02:30:50 (GMT)
commit4c9e2a4376a52891a21f75e2a441848234ed93c2 (patch)
tree5eb3ea85a2c7194639aad9b921a03f4aa4930fe9 /tests/auto
parent8b8a4e960be30d64d2bc093662ddb1cefeae524e (diff)
parent7f875312dcc09a4b2dcc5030e813e921b1dc7ee4 (diff)
downloadQt-4c9e2a4376a52891a21f75e2a441848234ed93c2.zip
Qt-4c9e2a4376a52891a21f75e2a441848234ed93c2.tar.gz
Qt-4c9e2a4376a52891a21f75e2a441848234ed93c2.tar.bz2
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public: Fix crash when using Q_GLOBAL_STATIC(QWidget...) Removed the need for S60main.rsc resource file in Symbian.
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/qapplication/tst_qapplication.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/auto/qapplication/tst_qapplication.cpp b/tests/auto/qapplication/tst_qapplication.cpp
index 91ae921..a198d7f 100644
--- a/tests/auto/qapplication/tst_qapplication.cpp
+++ b/tests/auto/qapplication/tst_qapplication.cpp
@@ -147,6 +147,10 @@ private slots:
void symbianNeedForTraps();
void symbianLeaveThroughMain();
void qtbug_12673();
+
+
+
+ void globalStaticObjectDestruction(); // run this last
};
class EventSpy : public QObject
@@ -2257,6 +2261,42 @@ void tst_QApplication::qtbug_12673()
#endif // Q_OS_SYMBIAN
}
+/*
+ This test is meant to ensure that certain objects (public & commonly used)
+ can safely be used in a Q_GLOBAL_STATIC such that their destructors are
+ executed *after* the destruction of QApplication.
+ */
+Q_GLOBAL_STATIC(QLocale, tst_qapp_locale);
+Q_GLOBAL_STATIC(QProcess, tst_qapp_process);
+Q_GLOBAL_STATIC(QFileSystemWatcher, tst_qapp_fileSystemWatcher);
+Q_GLOBAL_STATIC(QSharedMemory, tst_qapp_sharedMemory);
+Q_GLOBAL_STATIC(QElapsedTimer, tst_qapp_elapsedTimer);
+Q_GLOBAL_STATIC(QMutex, tst_qapp_mutex);
+Q_GLOBAL_STATIC(QWidget, tst_qapp_widget);
+Q_GLOBAL_STATIC(QPixmap, tst_qapp_pixmap);
+Q_GLOBAL_STATIC(QFont, tst_qapp_font);
+Q_GLOBAL_STATIC(QRegion, tst_qapp_region);
+Q_GLOBAL_STATIC(QFontDatabase, tst_qapp_fontDatabase);
+Q_GLOBAL_STATIC(QCursor, tst_qapp_cursor);
+
+void tst_QApplication::globalStaticObjectDestruction()
+{
+ int argc = 1;
+ QApplication app(argc, &argv0, QApplication::GuiServer);
+ QVERIFY(tst_qapp_locale());
+ QVERIFY(tst_qapp_process());
+ QVERIFY(tst_qapp_fileSystemWatcher());
+ QVERIFY(tst_qapp_sharedMemory());
+ QVERIFY(tst_qapp_elapsedTimer());
+ QVERIFY(tst_qapp_mutex());
+ QVERIFY(tst_qapp_widget());
+ QVERIFY(tst_qapp_pixmap());
+ QVERIFY(tst_qapp_font());
+ QVERIFY(tst_qapp_region());
+ QVERIFY(tst_qapp_fontDatabase());
+ QVERIFY(tst_qapp_cursor());
+}
+
//QTEST_APPLESS_MAIN(tst_QApplication)
int main(int argc, char *argv[])
{