summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/io
diff options
context:
space:
mode:
authorVolker Hilsheimer <volker.hilsheimer@qt.io>2020-05-13 16:50:59 +0200
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2020-05-27 11:55:06 +0200
commitee92ee7a3cf7ef6017a2950a590005abfd37cf1a (patch)
tree6b3dc1b659e15f494b84f066311b545187a5478c /tests/auto/corelib/io
parent3373aa8b351691d395cd15c634ca1b60fd688c6a (diff)
Remove deprecated QProcess methods
Add default parameter for arguments in start, startDetached, and execute for better source compatibility with Qt 5.15. This has the risk of then hiding incorrect calls to the previous overload taking a single "command" strings if code is ported from pre-5.15 or ignores deprecation warnings. This is acceptable, given that the alternative is that all calls to these functions would require a default constructed QStringList as the second parameter. Change-Id: I1ba4df97ac4894d007da5083c8359015d784ddbb Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'tests/auto/corelib/io')
-rw-r--r--tests/auto/corelib/io/qprocess/tst_qprocess.cpp187
1 files changed, 7 insertions, 180 deletions
diff --git a/tests/auto/corelib/io/qprocess/tst_qprocess.cpp b/tests/auto/corelib/io/qprocess/tst_qprocess.cpp
index 7cd99326ff..f0316de945 100644
--- a/tests/auto/corelib/io/qprocess/tst_qprocess.cpp
+++ b/tests/auto/corelib/io/qprocess/tst_qprocess.cpp
@@ -156,12 +156,6 @@ private slots:
void failToStartEmptyArgs_data();
void failToStartEmptyArgs();
-#if QT_DEPRECATED_SINCE(5, 13)
- void restartProcessDeadlock_deprecated();
- void waitForReadyReadInAReadyReadSlot_deprecated();
- void finishProcessBeforeReadingDone_deprecated();
-#endif
-
protected slots:
void readFromProcess();
void exitLoopSlot();
@@ -198,14 +192,6 @@ void tst_QProcess::getSetCheck()
QProcess obj1;
// ProcessChannelMode QProcess::readChannelMode()
// void QProcess::setProcessChannelMode(ProcessChannelMode)
-#if QT_DEPRECATED_SINCE(5, 13)
- obj1.setProcessChannelMode(QProcess::ProcessChannelMode(QProcess::SeparateChannels));
- QCOMPARE(QProcess::ProcessChannelMode(QProcess::SeparateChannels), obj1.readChannelMode());
- obj1.setProcessChannelMode(QProcess::ProcessChannelMode(QProcess::MergedChannels));
- QCOMPARE(QProcess::ProcessChannelMode(QProcess::MergedChannels), obj1.readChannelMode());
- obj1.setProcessChannelMode(QProcess::ProcessChannelMode(QProcess::ForwardedChannels));
- QCOMPARE(QProcess::ProcessChannelMode(QProcess::ForwardedChannels), obj1.readChannelMode());
-#endif
obj1.setProcessChannelMode(QProcess::ProcessChannelMode(QProcess::SeparateChannels));
QCOMPARE(QProcess::ProcessChannelMode(QProcess::SeparateChannels), obj1.processChannelMode());
obj1.setProcessChannelMode(QProcess::ProcessChannelMode(QProcess::MergedChannels));
@@ -403,11 +389,6 @@ void tst_QProcess::crashTest()
QVERIFY(spy.isValid());
QVERIFY(spy2.isValid());
-#if QT_DEPRECATED_SINCE(5, 6)
- QSignalSpy spy3(process.data(), static_cast<QProcessErrorSignal>(&QProcess::error));
- QVERIFY(spy3.isValid());
-#endif
-
QVERIFY(process->waitForFinished(30000));
QCOMPARE(spy.count(), 1);
@@ -416,11 +397,6 @@ void tst_QProcess::crashTest()
QCOMPARE(spy2.count(), 1);
QCOMPARE(*static_cast<const QProcess::ExitStatus *>(spy2.at(0).at(1).constData()), QProcess::CrashExit);
-#if QT_DEPRECATED_SINCE(5, 6)
- QCOMPARE(spy3.count(), 1);
- QCOMPARE(*static_cast<const QProcess::ProcessError *>(spy3.at(0).at(0).constData()), QProcess::Crashed);
-#endif
-
QCOMPARE(process->exitStatus(), QProcess::CrashExit);
// delete process;
@@ -713,10 +689,6 @@ void tst_QProcess::readTimeoutAndThenCrash()
qRegisterMetaType<QProcess::ProcessError>("QProcess::ProcessError");
QSignalSpy spy(&process, &QProcess::errorOccurred);
QVERIFY(spy.isValid());
-#if QT_DEPRECATED_SINCE(5, 6)
- QSignalSpy spy2(&process, static_cast<QProcessErrorSignal>(&QProcess::error));
- QVERIFY(spy2.isValid());
-#endif
process.kill();
@@ -725,10 +697,6 @@ void tst_QProcess::readTimeoutAndThenCrash()
QCOMPARE(spy.count(), 1);
QCOMPARE(*static_cast<const QProcess::ProcessError *>(spy.at(0).at(0).constData()), QProcess::Crashed);
-#if QT_DEPRECATED_SINCE(5, 6)
- QCOMPARE(spy2.count(), 1);
- QCOMPARE(*static_cast<const QProcess::ProcessError *>(spy2.at(0).at(0).constData()), QProcess::Crashed);
-#endif
}
void tst_QProcess::waitForFinished()
@@ -1416,6 +1384,9 @@ void tst_QProcess::spaceArgsTest()
QFETCH(QStringList, args);
QFETCH(QString, stringArgs);
+ auto splitString = QProcess::splitCommand(stringArgs);
+ QCOMPARE(args, splitString);
+
QStringList programs;
programs << QString::fromLatin1("testProcessSpacesArgs/nospace")
<< QString::fromLatin1("testProcessSpacesArgs/one space")
@@ -1442,28 +1413,6 @@ void tst_QProcess::spaceArgsTest()
actual.removeFirst();
QCOMPARE(actual, args);
-
- if (program.contains(QLatin1Char(' ')))
- program = QLatin1Char('"') + program + QLatin1Char('"');
-
- if (!stringArgs.isEmpty())
- program += QLatin1Char(' ') + stringArgs;
-
- errorMessage.clear();
- process.start(program);
- started = process.waitForStarted(5000);
- if (!started)
- errorMessage = startFailMessage(program, process);
-
- QVERIFY2(started, errorMessage.constData());
- QVERIFY(process.waitForFinished(5000));
-
- actual = QString::fromLatin1(process.readAll()).split("|");
- QVERIFY(!actual.isEmpty());
- // not interested in the program name, it might be different.
- actual.removeFirst();
-
- QCOMPARE(actual, args);
}
}
@@ -1518,7 +1467,7 @@ void tst_QProcess::exitCodeTest()
{
for (int i = 0; i < 255; ++i) {
QProcess process;
- process.start("testExitCodes/testExitCodes " + QString::number(i));
+ process.start("testExitCodes/testExitCodes", {QString::number(i)});
QVERIFY(process.waitForFinished(5000));
QCOMPARE(process.exitCode(), i);
QCOMPARE(process.error(), QProcess::UnknownError);
@@ -1539,11 +1488,6 @@ void tst_QProcess::failToStart()
QVERIFY(errorSpy.isValid());
QVERIFY(finishedSpy.isValid());
-#if QT_DEPRECATED_SINCE(5, 6)
- QSignalSpy errorSpy2(&process, static_cast<QProcessErrorSignal>(&QProcess::error));
- QVERIFY(errorSpy2.isValid());
-#endif
-
// OS X and HP-UX have a really low default process limit (~100), so spawning
// to many processes here will cause test failures later on.
#if defined Q_OS_HPUX
@@ -1557,9 +1501,6 @@ void tst_QProcess::failToStart()
for (int j = 0; j < 8; ++j) {
for (int i = 0; i < attempts; ++i) {
QCOMPARE(errorSpy.count(), j * attempts + i);
-#if QT_DEPRECATED_SINCE(5, 6)
- QCOMPARE(errorSpy2.count(), j * attempts + i);
-#endif
process.start("/blurp");
switch (j) {
@@ -1585,9 +1526,6 @@ void tst_QProcess::failToStart()
QCOMPARE(process.error(), QProcess::FailedToStart);
QCOMPARE(errorSpy.count(), j * attempts + i + 1);
QCOMPARE(finishedSpy.count(), 0);
-#if QT_DEPRECATED_SINCE(5, 6)
- QCOMPARE(errorSpy2.count(), j * attempts + i + 1);
-#endif
int it = j * attempts + i + 1;
@@ -1610,11 +1548,6 @@ void tst_QProcess::failToStartWithWait()
QVERIFY(errorSpy.isValid());
QVERIFY(finishedSpy.isValid());
-#if QT_DEPRECATED_SINCE(5, 6)
- QSignalSpy errorSpy2(&process, static_cast<QProcessErrorSignal>(&QProcess::error));
- QVERIFY(errorSpy2.isValid());
-#endif
-
for (int i = 0; i < 50; ++i) {
process.start("/blurp", QStringList() << "-v" << "-debug");
process.waitForStarted();
@@ -1622,9 +1555,6 @@ void tst_QProcess::failToStartWithWait()
QCOMPARE(process.error(), QProcess::FailedToStart);
QCOMPARE(errorSpy.count(), i + 1);
QCOMPARE(finishedSpy.count(), 0);
-#if QT_DEPRECATED_SINCE(5, 6)
- QCOMPARE(errorSpy2.count(), i + 1);
-#endif
}
}
@@ -1640,11 +1570,6 @@ void tst_QProcess::failToStartWithEventLoop()
QVERIFY(errorSpy.isValid());
QVERIFY(finishedSpy.isValid());
-#if QT_DEPRECATED_SINCE(5, 6)
- QSignalSpy errorSpy2(&process, static_cast<QProcessErrorSignal>(&QProcess::error));
- QVERIFY(errorSpy2.isValid());
-#endif
-
// The error signal may be emitted before start() returns
connect(&process, &QProcess::errorOccurred, &loop, &QEventLoop::quit, Qt::QueuedConnection);
@@ -1657,9 +1582,6 @@ void tst_QProcess::failToStartWithEventLoop()
QCOMPARE(process.error(), QProcess::FailedToStart);
QCOMPARE(errorSpy.count(), i + 1);
QCOMPARE(finishedSpy.count(), 0);
-#if QT_DEPRECATED_SINCE(5, 6)
- QCOMPARE(errorSpy2.count(), i + 1);
-#endif
}
}
@@ -1667,8 +1589,7 @@ 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;
+ QTest::newRow("start(OpenMode)") << 1;
}
void tst_QProcess::failToStartEmptyArgs()
@@ -1679,19 +1600,12 @@ void tst_QProcess::failToStartEmptyArgs()
QProcess process;
QSignalSpy errorSpy(&process, static_cast<QProcessErrorSignal>(&QProcess::errorOccurred));
QVERIFY(errorSpy.isValid());
-#if QT_DEPRECATED_SINCE(5, 6)
- QSignalSpy errorSpy2(&process, static_cast<QProcessErrorSignal>(&QProcess::error));
- QVERIFY(errorSpy2.isValid());
-#endif
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:
@@ -1700,9 +1614,6 @@ void tst_QProcess::failToStartEmptyArgs()
QVERIFY(!process.waitForStarted());
QCOMPARE(errorSpy.count(), 1);
-#if QT_DEPRECATED_SINCE(5, 6)
- QCOMPARE(errorSpy2.count(), 1);
-#endif
QCOMPARE(process.error(), QProcess::FailedToStart);
}
@@ -1938,21 +1849,12 @@ void tst_QProcess::waitForReadyReadForNonexistantProcess()
QVERIFY(errorSpy.isValid());
QVERIFY(finishedSpy.isValid());
-#if QT_DEPRECATED_SINCE(5, 6)
- QSignalSpy errorSpy2(&process, static_cast<QProcessErrorSignal>(&QProcess::error));
- QVERIFY(errorSpy2.isValid());
-#endif
-
QVERIFY(!process.waitForReadyRead()); // used to crash
process.start("doesntexist");
QVERIFY(!process.waitForReadyRead());
QCOMPARE(errorSpy.count(), 1);
QCOMPARE(errorSpy.at(0).at(0).toInt(), 0);
QCOMPARE(finishedSpy.count(), 0);
-#if QT_DEPRECATED_SINCE(5, 6)
- QCOMPARE(errorSpy2.count(), 1);
- QCOMPARE(errorSpy2.at(0).at(0).toInt(), 0);
-#endif
}
void tst_QProcess::setStandardInputFile()
@@ -2162,7 +2064,7 @@ void tst_QProcess::fileWriterProcess()
QVERIFY(QFile::remove(fileName));
QProcess process;
process.setWorkingDirectory(m_temporaryDir.path());
- process.start(binary, QIODevice::ReadWrite | QIODevice::Text);
+ process.start(binary, {}, QIODevice::ReadWrite | QIODevice::Text);
process.write(stdinStr);
process.closeWriteChannel();
while (process.bytesToWrite()) {
@@ -2373,7 +2275,6 @@ void tst_QProcess::invalidProgramString_data()
QTest::addColumn<QString>("programString");
QTest::newRow("null string") << QString();
QTest::newRow("empty string") << QString("");
- QTest::newRow("only blank string") << QString(" ");
}
void tst_QProcess::invalidProgramString()
@@ -2384,17 +2285,10 @@ void tst_QProcess::invalidProgramString()
qRegisterMetaType<QProcess::ProcessError>("QProcess::ProcessError");
QSignalSpy spy(&process, &QProcess::errorOccurred);
QVERIFY(spy.isValid());
-#if QT_DEPRECATED_SINCE(5, 6)
- QSignalSpy spy2(&process, static_cast<QProcessErrorSignal>(&QProcess::error));
- QVERIFY(spy2.isValid());
-#endif
process.start(programString);
QCOMPARE(process.error(), QProcess::FailedToStart);
QCOMPARE(spy.count(), 1);
-#if QT_DEPRECATED_SINCE(5, 6)
- QCOMPARE(spy2.count(), 1);
-#endif
QVERIFY(!QProcess::startDetached(programString));
}
@@ -2544,7 +2438,7 @@ void tst_QProcess::startStopStartStopBuffers()
#endif
process.setProcessChannelMode(QProcess::ProcessChannelMode(channelMode2));
- process.start("testProcessEcho2/testProcessEcho2", QIODevice::ReadWrite | QIODevice::Text);
+ process.start("testProcessEcho2/testProcessEcho2", {}, QIODevice::ReadWrite | QIODevice::Text);
// the buffers should now be empty
QCOMPARE(process.bytesToWrite(), qint64(0));
@@ -2593,72 +2487,5 @@ void tst_QProcess::processEventsInAReadyReadSlot()
QVERIFY(process.waitForFinished());
}
-#if QT_DEPRECATED_SINCE(5, 13)
-
-void tst_QProcess::restartProcessDeadlock_deprecated()
-{
- // The purpose of this test is to detect whether restarting a
- // process in the finished() connected slot causes a deadlock
- // because of the way QProcessManager uses its locks.
- QProcess process;
- connect(&process, &QProcess::finished, this, &tst_QProcess::restartProcess);
-
- process.start("testProcessEcho/testProcessEcho");
-
- QCOMPARE(process.write("", 1), qlonglong(1));
- QVERIFY(process.waitForFinished(5000));
-
- QObject::disconnect(&process, &QProcess::finished, nullptr, nullptr);
-
- QCOMPARE(process.write("", 1), qlonglong(1));
- QVERIFY(process.waitForFinished(5000));
- QCOMPARE(process.exitStatus(), QProcess::NormalExit);
- QCOMPARE(process.exitCode(), 0);
-}
-
-void tst_QProcess::waitForReadyReadInAReadyReadSlot_deprecated()
-{
- QProcess process;
- connect(&process, &QIODevice::readyRead, this, &tst_QProcess::waitForReadyReadInAReadyReadSlotSlot);
- connect(&process, &QProcess::finished, this, &tst_QProcess::exitLoopSlot);
- bytesAvailable = 0;
-
- process.start("testProcessEcho/testProcessEcho");
- QVERIFY(process.waitForStarted(5000));
-
- QSignalSpy spy(&process, &QProcess::readyRead);
- QVERIFY(spy.isValid());
- process.write("foo");
- QTestEventLoop::instance().enterLoop(30);
- QVERIFY(!QTestEventLoop::instance().timeout());
-
- QCOMPARE(spy.count(), 1);
-
- process.disconnect();
- QVERIFY(process.waitForFinished(5000));
- QCOMPARE(process.exitStatus(), QProcess::NormalExit);
- QCOMPARE(process.exitCode(), 0);
- QVERIFY(process.bytesAvailable() > bytesAvailable);
-}
-
-void tst_QProcess::finishProcessBeforeReadingDone_deprecated()
-{
- QProcess process;
- BlockOnReadStdOut blocker(&process);
- QEventLoop loop;
- connect(&process, &QProcess::finished, &loop, &QEventLoop::quit);
- process.start("testProcessOutput/testProcessOutput");
- QVERIFY(process.waitForStarted());
- loop.exec();
- QStringList lines = QString::fromLocal8Bit(process.readAllStandardOutput()).split(
- QRegularExpression(QStringLiteral("[\r\n]")), Qt::SkipEmptyParts);
- QVERIFY(!lines.isEmpty());
- QCOMPARE(lines.last(), QStringLiteral("10239 -this is a number"));
- QCOMPARE(process.exitStatus(), QProcess::NormalExit);
- QCOMPARE(process.exitCode(), 0);
-}
-
-#endif
-
QTEST_MAIN(tst_QProcess)
#include "tst_qprocess.moc"