diff options
author | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2011-12-08 17:00:20 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-12-09 08:23:27 +0100 |
commit | 04cac41e588b7c49b5ee915d484724a56b3775fc (patch) | |
tree | 0be7e3f3cc1ebee502cf7e1ae277fec26801a312 /tests/auto/corelib/io/qprocess | |
parent | 60e93449d2a7e6e3a10723a9a73dabc39afe0262 (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.cpp | 29 |
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) |