summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@digia.com>2012-12-20 10:25:24 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-12-20 13:58:23 +0100
commit3c1479f8a43c13b2f9f93e63ae2247907546c0ae (patch)
tree86b3fa5d44896f7b3b1d88c974dc10d424407ff9 /tools
parentd76d824e437bb858cb599ce81dd1c1b4d497ba5d (diff)
QmlViewer: Fix test script exits.
Use exit code 1 on Windows to indicate failures as negative exit codes are reported as crashes by QProcess in the qmlvisual test. Always use QCoreApplication::exit() to ensure proper cleanup. Task-number: QTBUG-28611 Task-number: QTBUG-28735 Change-Id: I0b12153449f7371ce7795a5747e3311184bc7b6f Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/qml/qdeclarativetester.cpp24
1 files changed, 19 insertions, 5 deletions
diff --git a/tools/qml/qdeclarativetester.cpp b/tools/qml/qdeclarativetester.cpp
index 1d46f560..70d50f3a 100644
--- a/tools/qml/qdeclarativetester.cpp
+++ b/tools/qml/qdeclarativetester.cpp
@@ -53,6 +53,15 @@
QT_BEGIN_NAMESPACE
+enum {
+ TestSuccessExitCode = 0,
+#ifdef Q_OS_WIN
+ TestFailureExitCode = 1 // QProcess on Windows reports crash for exit codes < 0, QTBUG-28735
+#else
+ TestFailureExitCode = -1
+#endif
+};
+
extern Q_GUI_EXPORT bool qt_applefontsmoothing_enabled;
QDeclarativeTester::QDeclarativeTester(const QString &script, QDeclarativeViewer::ScriptOptions opts,
@@ -137,7 +146,7 @@ void QDeclarativeTester::executefailure()
hasFailed = true;
if (options & QDeclarativeViewer::ExitOnFailure)
- exit(-1);
+ QCoreApplication::exit(TestFailureExitCode);
}
void QDeclarativeTester::imagefailure()
@@ -146,7 +155,7 @@ void QDeclarativeTester::imagefailure()
if (options & QDeclarativeViewer::ExitOnFailure){
testSkip();
- exit(hasFailed?-1:0);
+ QCoreApplication::exit(hasFailed ? TestFailureExitCode : TestSuccessExitCode);
}
}
@@ -178,7 +187,7 @@ void QDeclarativeTester::complete()
testSkip();
if (options & QDeclarativeViewer::ExitOnComplete)
- QApplication::exit(hasFailed?-1:0);
+ QCoreApplication::exit(hasFailed? TestFailureExitCode : TestSuccessExitCode);
if (hasCompleted)
return;
@@ -193,8 +202,13 @@ void QDeclarativeTester::run()
QDeclarativeComponent c(m_view->engine(), m_script + QLatin1String(".qml"));
testscript = qobject_cast<QDeclarativeVisualTest *>(c.create());
- if (testscript) testscript->setParent(this);
- else { executefailure(); exit(-1); }
+ if (testscript) {
+ testscript->setParent(this);
+ } else {
+ executefailure();
+ if (!(options & QDeclarativeViewer::ExitOnFailure))
+ QCoreApplication::exit(TestFailureExitCode);
+ }
testscriptidx = 0;
}