aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/imports/testlib/TestCase.qml2
-rw-r--r--src/qmltest/quicktest.cpp16
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();
}
}