diff --git a/src/libs/utils/qtcprocess.cpp b/src/libs/utils/qtcprocess.cpp index 36758d74c63..4324e0a0eb7 100644 --- a/src/libs/utils/qtcprocess.cpp +++ b/src/libs/utils/qtcprocess.cpp @@ -1609,15 +1609,17 @@ void QtcProcessPrivate::handleDone(const ProcessResultData &data) qDebug() << Q_FUNC_INFO << m_resultData.m_exitCode << m_resultData.m_exitStatus; m_hangTimerCount = 0; - switch (m_resultData.m_exitStatus) { - case QProcess::NormalExit: - m_result = interpretExitCode(m_resultData.m_exitCode); - break; - case QProcess::CrashExit: - // Was hang detected before and killed? - if (m_result != ProcessResult::Hang) - m_result = ProcessResult::TerminatedAbnormally; - break; + if (m_resultData.m_error != QProcess::FailedToStart) { + switch (m_resultData.m_exitStatus) { + case QProcess::NormalExit: + m_result = interpretExitCode(m_resultData.m_exitCode); + break; + case QProcess::CrashExit: + // Was hang detected before and killed? + if (m_result != ProcessResult::Hang) + m_result = ProcessResult::TerminatedAbnormally; + break; + } } if (m_eventLoop) m_eventLoop->quit(); diff --git a/tests/auto/utils/qtcprocess/tst_qtcprocess.cpp b/tests/auto/utils/qtcprocess/tst_qtcprocess.cpp index cffa22fbd04..3a3d01e20e1 100644 --- a/tests/auto/utils/qtcprocess/tst_qtcprocess.cpp +++ b/tests/auto/utils/qtcprocess/tst_qtcprocess.cpp @@ -1007,6 +1007,7 @@ void tst_QtcProcess::notRunningAfterStartingNonExistingProgram() QCOMPARE(process.exitStatus(), QProcess::NormalExit); QCOMPARE(process.error(), QProcess::FailedToStart); QVERIFY(process.exitCode() != 0); + QCOMPARE(process.result(), ProcessResult::StartFailed); } }