diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-08-03 01:00:16 +0200 |
---|---|---|
committer | Edward Welbourne <edward.welbourne@qt.io> | 2018-08-07 17:44:51 +0200 |
commit | 053e7cce79d4bef99ec85101b0d22bbb171072c5 (patch) | |
tree | c2059e82cccdea1fd0024c5942d1a834c28d39da /tests/auto/corelib/io/qprocess/testForwarding/main.cpp | |
parent | a420d02538d28854914a6978c9637a0ddd652146 (diff) | |
parent | f271dd8f960ad9f61697dfa57b26c4071441cadc (diff) |
Merge remote-tracking branch 'origin/5.11' into dev
Conflicts:
.qmake.conf
src/corelib/doc/src/objectmodel/signalsandslots.qdoc
src/plugins/platforms/cocoa/qcocoamenuloader.mm
src/plugins/platforms/xcb/qxcbconnection.cpp
src/plugins/platforms/xcb/qxcbconnection.h
src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
src/plugins/platforms/xcb/qxcbwindow.cpp
tests/auto/gui/image/qimage/tst_qimage.cpp
Done-with: Gatis Paeglis <gatis.paeglis@qt.io>
Change-Id: I9bd24ee9b00d4f26c8f344ce3970aa6e93935ff5
Diffstat (limited to 'tests/auto/corelib/io/qprocess/testForwarding/main.cpp')
-rw-r--r-- | tests/auto/corelib/io/qprocess/testForwarding/main.cpp | 57 |
1 files changed, 44 insertions, 13 deletions
diff --git a/tests/auto/corelib/io/qprocess/testForwarding/main.cpp b/tests/auto/corelib/io/qprocess/testForwarding/main.cpp index b7367ff8c6..b5d56a1138 100644 --- a/tests/auto/corelib/io/qprocess/testForwarding/main.cpp +++ b/tests/auto/corelib/io/qprocess/testForwarding/main.cpp @@ -27,15 +27,32 @@ ****************************************************************************/ #include <QtCore/QCoreApplication> +#include <QtCore/QDeadlineTimer> #include <QtCore/QProcess> +#include <QtCore/QTemporaryFile> +#include <QtCore/QThread> #include <stdlib.h> +static bool waitForDoneFileWritten(const QString &filePath, int msecs = 30000) +{ + QDeadlineTimer t(msecs); + do { + QThread::msleep(250); + QFile file(filePath); + if (!file.open(QIODevice::ReadOnly)) + continue; + if (file.readAll() == "That's all folks!") + return true; + } while (!t.hasExpired()); + return false; +} + int main(int argc, char **argv) { QCoreApplication app(argc, argv); - if (argc < 3) + if (argc < 4) return 13; QProcess process; @@ -50,23 +67,37 @@ int main(int argc, char **argv) if (process.inputChannelMode() != inmode) return 11; - process.start("testProcessEcho2/testProcessEcho2"); + if (atoi(argv[3])) { + QTemporaryFile doneFile("testForwarding_XXXXXX.txt"); + if (!doneFile.open()) + return 12; + doneFile.close(); + + process.setProgram("testForwardingHelper/testForwardingHelper"); + process.setArguments(QStringList(doneFile.fileName())); + if (!process.startDetached()) + return 13; + if (!waitForDoneFileWritten(doneFile.fileName())) + return 14; + } else { + process.start("testProcessEcho2/testProcessEcho2"); - if (!process.waitForStarted(5000)) - return 2; + if (!process.waitForStarted(5000)) + return 2; - if (inmode == QProcess::ManagedInputChannel && process.write("forwarded") != 9) - return 3; + if (inmode == QProcess::ManagedInputChannel && process.write("forwarded") != 9) + return 3; - process.closeWriteChannel(); - if (!process.waitForFinished(5000)) - return 4; + process.closeWriteChannel(); + if (!process.waitForFinished(5000)) + return 4; - if ((mode == QProcess::ForwardedOutputChannel || mode == QProcess::ForwardedChannels) + if ((mode == QProcess::ForwardedOutputChannel || mode == QProcess::ForwardedChannels) && !process.readAllStandardOutput().isEmpty()) - return 5; - if ((mode == QProcess::ForwardedErrorChannel || mode == QProcess::ForwardedChannels) + return 5; + if ((mode == QProcess::ForwardedErrorChannel || mode == QProcess::ForwardedChannels) && !process.readAllStandardError().isEmpty()) - return 6; + return 6; + } return 0; } |