From ae49fb213b4704c6a9979fd1aa44a7e179a932f9 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Tue, 22 Mar 2022 12:33:03 +0100 Subject: [PATCH] Ensure that after a call to waitForFinished() process is not running Amends 5de5f1cf0a957c3a81bd55d4021c84041250f024 Change-Id: I64db8c6736c6a7cc6805813f852faf1048ebb629 Reviewed-by: Alessandro Portale --- tests/auto/utils/qtcprocess/tst_qtcprocess.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/tests/auto/utils/qtcprocess/tst_qtcprocess.cpp b/tests/auto/utils/qtcprocess/tst_qtcprocess.cpp index b53d0d05b91..2f1804d423c 100644 --- a/tests/auto/utils/qtcprocess/tst_qtcprocess.cpp +++ b/tests/auto/utils/qtcprocess/tst_qtcprocess.cpp @@ -169,6 +169,11 @@ private: QHash m_map; }; +static void doCrash() +{ + qFatal("The application has crashed purposefully!"); +} + class tst_QtcProcess : public QObject { Q_OBJECT @@ -1320,7 +1325,7 @@ void tst_QtcProcess::flushFinishedWhileWaitingForReadyRead() void tst_QtcProcess::EmitOneErrorOnCrash::main() { - abort(); + doCrash(); } void tst_QtcProcess::emitOneErrorOnCrash() @@ -1339,12 +1344,13 @@ void tst_QtcProcess::emitOneErrorOnCrash() loop.exec(); QCOMPARE(errorCount, 1); + QCOMPARE(process.error(), QProcess::Crashed); } void tst_QtcProcess::CrashAfterOneSecond::main() { QThread::sleep(1); - abort(); + doCrash(); } void tst_QtcProcess::crashAfterOneSecond() @@ -1361,6 +1367,8 @@ void tst_QtcProcess::crashAfterOneSecond() // it doesn't (try running this test with QTC_USE_QPROCESS=) QVERIFY(process.waitForFinished(2000)); QVERIFY(timer.elapsed() < 2000); + QCOMPARE(process.state(), QProcess::NotRunning); + QCOMPARE(process.error(), QProcess::Crashed); } QTEST_MAIN(tst_QtcProcess)