summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/corelib/io/qprocess/tst_qprocess.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/auto/corelib/io/qprocess/tst_qprocess.cpp b/tests/auto/corelib/io/qprocess/tst_qprocess.cpp
index 0c65ceb0eb..99cb9ad6cb 100644
--- a/tests/auto/corelib/io/qprocess/tst_qprocess.cpp
+++ b/tests/auto/corelib/io/qprocess/tst_qprocess.cpp
@@ -156,6 +156,8 @@ private slots:
void failToStart();
void failToStartWithWait();
void failToStartWithEventLoop();
+ void failToStartEmptyArgs_data();
+ void failToStartEmptyArgs();
protected slots:
void readFromProcess();
@@ -1672,6 +1674,42 @@ void tst_QProcess::failToStartWithEventLoop()
}
}
+void tst_QProcess::failToStartEmptyArgs_data()
+{
+ QTest::addColumn<int>("startOverload");
+ QTest::newRow("start(QString, QStringList, OpenMode)") << 0;
+ QTest::newRow("start(QString, OpenMode)") << 1;
+ QTest::newRow("start(OpenMode)") << 2;
+}
+
+void tst_QProcess::failToStartEmptyArgs()
+{
+ QFETCH(int, startOverload);
+ qRegisterMetaType<QProcess::ProcessError>("QProcess::ProcessError");
+
+ QProcess process;
+ QSignalSpy errorSpy(&process, static_cast<void (QProcess::*)(QProcess::ProcessError)>(&QProcess::error));
+ QVERIFY(errorSpy.isValid());
+
+ switch (startOverload) {
+ case 0:
+ process.start(QString(), QStringList(), QIODevice::ReadWrite);
+ break;
+ case 1:
+ process.start(QString(), QIODevice::ReadWrite);
+ break;
+ case 2:
+ process.start(QIODevice::ReadWrite);
+ break;
+ default:
+ QFAIL("Unhandled QProcess::start overload.");
+ };
+
+ QVERIFY(!process.waitForStarted());
+ QCOMPARE(errorSpy.count(), 1);
+ QCOMPARE(process.error(), QProcess::FailedToStart);
+}
+
//-----------------------------------------------------------------------------
#ifndef Q_OS_WINCE
// Reading and writing to a process is not supported on Qt/CE