From f915a18a9e2661891dfc79a23d554dd946ad2a10 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Fri, 3 Nov 2023 11:45:08 +0100 Subject: [PATCH] Process test: Adjust timeouts to minimize a chance for flakiness The flakiness happened on mac inside recursiveBlockingProcess test. Change-Id: I4d461fcdae1ecbf29f89bfdb4ad7ba017724f14b Reviewed-by: Marcus Tillmanns --- .../utils/process/processtestapp/processtestapp.cpp | 4 ++-- tests/auto/utils/process/tst_process.cpp | 11 +++++++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/tests/auto/utils/process/processtestapp/processtestapp.cpp b/tests/auto/utils/process/processtestapp/processtestapp.cpp index 77f36a362ec..d85288514ea 100644 --- a/tests/auto/utils/process/processtestapp/processtestapp.cpp +++ b/tests/auto/utils/process/processtestapp/processtestapp.cpp @@ -245,7 +245,7 @@ int ProcessTestApp::RecursiveBlockingProcess::main() std::cout << s_leafProcessStarted << std::flush; while (true) { // TODO: make it configurable so that we could test the reaper timeout - QThread::msleep(100); + QThread::msleep(10); #ifndef Q_OS_WIN if (s_terminate.load()) { std::cout << s_leafProcessTerminated << std::flush; @@ -260,7 +260,7 @@ int ProcessTestApp::RecursiveBlockingProcess::main() process.setProcessChannelMode(QProcess::ForwardedChannels); process.start(); while (true) { - if (process.waitForFinished(1000)) + if (process.waitForFinished(10)) return 0; #ifndef Q_OS_WIN if (s_terminate.load()) { diff --git a/tests/auto/utils/process/tst_process.cpp b/tests/auto/utils/process/tst_process.cpp index 52e4658778f..334c9754ba4 100644 --- a/tests/auto/utils/process/tst_process.cpp +++ b/tests/auto/utils/process/tst_process.cpp @@ -1370,14 +1370,17 @@ void tst_Process::recursiveBlockingProcess() subConfig.setupSubProcess(&process); process.start(); QVERIFY(process.waitForStarted(1000)); - QVERIFY(process.waitForReadyRead(1000)); + // The readyRead() is generated from the innermost nested process, so it means + // we need to give enough time for all nested processes to start their + // process launchers successfully. + QVERIFY(process.waitForReadyRead(2000)); QCOMPARE(process.readAllRawStandardOutput(), s_leafProcessStarted); QCOMPARE(runningTestProcessCount(), recursionDepth); - QVERIFY(!process.waitForFinished(1000)); + QVERIFY(!process.waitForFinished(10)); process.terminate(); - QVERIFY(process.waitForReadyRead()); + QVERIFY(process.waitForReadyRead(1000)); QCOMPARE(process.readAllRawStandardOutput(), s_leafProcessTerminated); - QVERIFY(process.waitForFinished()); + QVERIFY(process.waitForFinished(1000)); QCOMPARE(process.exitStatus(), QProcess::NormalExit); QCOMPARE(process.exitCode(), s_crashCode); }