summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/io/qprocess
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>2011-12-08 17:00:20 +0100
committerQt by Nokia <qt-info@nokia.com>2011-12-09 08:23:27 +0100
commit04cac41e588b7c49b5ee915d484724a56b3775fc (patch)
tree0be7e3f3cc1ebee502cf7e1ae277fec26801a312 /tests/auto/corelib/io/qprocess
parent60e93449d2a7e6e3a10723a9a73dabc39afe0262 (diff)
QProcess-Test: Improve error handling.
In case a subprocess fails to start. Change-Id: I1372c07de8f3580a8e7aadd6874da15bf273ac53 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com> Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Diffstat (limited to 'tests/auto/corelib/io/qprocess')
-rw-r--r--tests/auto/corelib/io/qprocess/tst_qprocess.cpp29
1 files changed, 23 insertions, 6 deletions
diff --git a/tests/auto/corelib/io/qprocess/tst_qprocess.cpp b/tests/auto/corelib/io/qprocess/tst_qprocess.cpp
index f5754c07aa..9d0121307c 100644
--- a/tests/auto/corelib/io/qprocess/tst_qprocess.cpp
+++ b/tests/auto/corelib/io/qprocess/tst_qprocess.cpp
@@ -1421,6 +1421,15 @@ void tst_QProcess::spaceArgsTest_data()
<< QString::fromLatin1(" \"\"\"\"\"\"\" \"\" \"\"\"\"\"\"\" ");
}
+static QByteArray startFailMessage(const QString &program, const QProcess &process)
+{
+ QByteArray result = "Process '";
+ result += program.toLocal8Bit();
+ result += "' failed to start: ";
+ result += process.errorString().toLocal8Bit();
+ return result;
+}
+
//-----------------------------------------------------------------------------
void tst_QProcess::spaceArgsTest()
{
@@ -1438,13 +1447,17 @@ void tst_QProcess::spaceArgsTest()
QString program = programs.at(i);
process->start(program, args);
-#if !defined(Q_OS_WINCE)
- QVERIFY(process->waitForStarted(5000));
- QVERIFY(process->waitForFinished(5000));
+#if defined(Q_OS_WINCE)
+ const int timeOutMS = 10000;
#else
- QVERIFY(process->waitForStarted(10000));
- QVERIFY(process->waitForFinished(10000));
+ const int timeOutMS = 5000;
#endif
+ QByteArray errorMessage;
+ bool started = process->waitForStarted(timeOutMS);
+ if (!started)
+ errorMessage = startFailMessage(program, *process);
+ QVERIFY2(started, errorMessage.constData());
+ QVERIFY(process->waitForFinished(timeOutMS));
#if !defined(Q_OS_WINCE)
QStringList actual = QString::fromLatin1(process->readAll()).split("|");
@@ -1463,9 +1476,13 @@ void tst_QProcess::spaceArgsTest()
if (!stringArgs.isEmpty())
program += QString::fromLatin1(" ") + stringArgs;
+ errorMessage.clear();
process->start(program);
+ started = process->waitForStarted(5000);
+ if (!started)
+ errorMessage = startFailMessage(program, *process);
- QVERIFY(process->waitForStarted(5000));
+ QVERIFY2(started, errorMessage.constData());
QVERIFY(process->waitForFinished(5000));
#if !defined(Q_OS_WINCE)