summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@qt.io>2020-09-03 10:05:52 +0200
committerJoerg Bornemann <joerg.bornemann@qt.io>2020-09-10 18:05:28 +0200
commitb5234817f122bac919d344dbfba3b1c4b3a289c5 (patch)
treeef1bcd6bb48ffccae4641ed7d326c7cb93bb0b84 /tests
parentd7749308915df108ad1ce680ea86fe50726bd35e (diff)
Introduce QProcess::startCommand(QString, OpenMode)
The removal of the QProcess::start(QString, OpenMode) leads to more porting work than anticipated. A call like QProcess p; p.start(cmdline); must be transformed in the following cumbersome way: QProcess p; QStringList args = QProcess::splitCommand(cmdline); QString program = args.takeFirst(); p.start(program, args); This patch revives QProcess::start(QString, OpenMode) and renames it to QProcess::startCommand. This is still source-incompatible, but the transformation is much simpler: QProcess p; p.startCommand(cmdline); [ChangeLog][QtCore][QProcess] Added QProcess::startCommand(QString, OpenMode) as replacement for the removed QProcess::start(QString, OpenMode). Change-Id: I5499bbb39a025e115042c43a4cc63affddae585c Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/corelib/io/qprocess/tst_qprocess.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/tests/auto/corelib/io/qprocess/tst_qprocess.cpp b/tests/auto/corelib/io/qprocess/tst_qprocess.cpp
index 317db0574c..023e254dc5 100644
--- a/tests/auto/corelib/io/qprocess/tst_qprocess.cpp
+++ b/tests/auto/corelib/io/qprocess/tst_qprocess.cpp
@@ -64,6 +64,7 @@ private slots:
void constructing();
void simpleStart();
void setChildProcessModifier();
+ void startCommand();
void startWithOpen();
void startWithOldOpen();
void execute();
@@ -303,6 +304,20 @@ void tst_QProcess::setChildProcessModifier()
#endif
}
+void tst_QProcess::startCommand()
+{
+ QProcess process;
+ process.startCommand("testProcessSpacesArgs/nospace foo \"b a r\" baz");
+ QVERIFY2(process.waitForStarted(), qPrintable(process.errorString()));
+ QVERIFY2(process.waitForFinished(), qPrintable(process.errorString()));
+ QCOMPARE(process.exitStatus(), QProcess::NormalExit);
+ QCOMPARE(process.exitCode(), 0);
+ QByteArray actual = process.readAll();
+ actual.remove(0, actual.indexOf('|') + 1);
+ QByteArray expected = "foo|b a r|baz";
+ QCOMPARE(actual, expected);
+}
+
void tst_QProcess::startWithOpen()
{
QProcess p;