diff options
author | Joerg Bornemann <joerg.bornemann@qt.io> | 2020-09-03 10:05:52 +0200 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@qt.io> | 2020-09-10 18:05:28 +0200 |
commit | b5234817f122bac919d344dbfba3b1c4b3a289c5 (patch) | |
tree | ef1bcd6bb48ffccae4641ed7d326c7cb93bb0b84 /tests | |
parent | d7749308915df108ad1ce680ea86fe50726bd35e (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.cpp | 15 |
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; |