diff options
-rw-r--r-- | src/imports/testlib/TestCase.qml | 2 | ||||
-rw-r--r-- | src/qmltest/quicktest.cpp | 16 |
2 files changed, 14 insertions, 4 deletions
diff --git a/src/imports/testlib/TestCase.qml b/src/imports/testlib/TestCase.qml index 432f96ccf1..bb97481102 100644 --- a/src/imports/testlib/TestCase.qml +++ b/src/imports/testlib/TestCase.qml @@ -684,6 +684,8 @@ Item { } Component.onCompleted: { + qtest.hasTestCase = true; + if (util.printAvailableFunctions) { var testList = [] for (var prop in testCase) { diff --git a/src/qmltest/quicktest.cpp b/src/qmltest/quicktest.cpp index 3c726d43d1..601f5dcdbd 100644 --- a/src/qmltest/quicktest.cpp +++ b/src/qmltest/quicktest.cpp @@ -72,23 +72,28 @@ class QTestRootObject : public QObject { Q_OBJECT Q_PROPERTY(bool windowShown READ windowShown NOTIFY windowShownChanged) + Q_PROPERTY(bool hasTestCase READ hasTestCase WRITE setHasTestCase NOTIFY hasTestCaseChanged) public: QTestRootObject(QObject *parent = 0) - : QObject(parent), hasQuit(false), m_windowShown(false) {} + : QObject(parent), hasQuit(false), m_hasTestCase(false), m_windowShown(false) {} - bool hasQuit; + bool hasQuit:1; + bool hasTestCase() const { return m_hasTestCase; } + void setHasTestCase(bool value) { m_hasTestCase = value; emit hasTestCaseChanged(); } bool windowShown() const { return m_windowShown; } void setWindowShown(bool value) { m_windowShown = value; emit windowShownChanged(); } Q_SIGNALS: void windowShownChanged(); + void hasTestCaseChanged(); private Q_SLOTS: void quit() { hasQuit = true; } private: - bool m_windowShown; + bool m_windowShown : 1; + bool m_hasTestCase :1; }; static inline QString stripQuotes(const QString &s) @@ -192,11 +197,14 @@ int quick_test_main(int argc, char **argv, const char *name, quick_test_viewport if (!fi.exists()) continue; + rootobj.setHasTestCase(false); + QString path = fi.absoluteFilePath(); if (path.startsWith(QLatin1String(":/"))) view.setSource(QUrl(QLatin1String("qrc:") + path.mid(2))); else view.setSource(QUrl::fromLocalFile(path)); + if (QTest::printAvailableFunctions) continue; if (view.status() == QQuickView::Error) { @@ -224,7 +232,7 @@ int quick_test_main(int argc, char **argv, const char *name, quick_test_viewport view.show(); QTest::qWaitForWindowShown(&view); rootobj.setWindowShown(true); - if (!rootobj.hasQuit) + if (!rootobj.hasQuit && rootobj.hasTestCase()) eventLoop.exec(); } } |