forked from qt-creator/qt-creator
AutoTest: Guard against nullptr access
Change-Id: I15e5d769b7a4b30421f52fbbe380ca7f19214b42 Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -216,7 +216,8 @@ void TestRunner::scheduleNext()
|
|||||||
void TestRunner::cancelCurrent(TestRunner::CancelReason reason)
|
void TestRunner::cancelCurrent(TestRunner::CancelReason reason)
|
||||||
{
|
{
|
||||||
if (reason == UserCanceled) {
|
if (reason == UserCanceled) {
|
||||||
if (!m_fakeFutureInterface->isCanceled()) // depends on using the button / progress bar
|
// when using the stop button we need to report, for progress bar this happens automatically
|
||||||
|
if (m_fakeFutureInterface && !m_fakeFutureInterface->isCanceled())
|
||||||
m_fakeFutureInterface->reportCanceled();
|
m_fakeFutureInterface->reportCanceled();
|
||||||
}
|
}
|
||||||
if (m_currentProcess && m_currentProcess->state() != QProcess::NotRunning) {
|
if (m_currentProcess && m_currentProcess->state() != QProcess::NotRunning) {
|
||||||
@@ -231,22 +232,23 @@ void TestRunner::cancelCurrent(TestRunner::CancelReason reason)
|
|||||||
|
|
||||||
void TestRunner::onProcessFinished()
|
void TestRunner::onProcessFinished()
|
||||||
{
|
{
|
||||||
m_fakeFutureInterface->setProgressValue(m_fakeFutureInterface->progressValue()
|
if (m_currentConfig) {
|
||||||
+ m_currentConfig->testCaseCount());
|
m_fakeFutureInterface->setProgressValue(m_fakeFutureInterface->progressValue()
|
||||||
if (!m_fakeFutureInterface->isCanceled()) {
|
+ m_currentConfig->testCaseCount());
|
||||||
if (m_currentProcess->exitStatus() == QProcess::CrashExit) {
|
if (!m_fakeFutureInterface->isCanceled()) {
|
||||||
m_currentOutputReader->reportCrash();
|
if (m_currentProcess->exitStatus() == QProcess::CrashExit) {
|
||||||
emit testResultReady(TestResultPtr(new FaultyTestResult(Result::MessageFatal,
|
m_currentOutputReader->reportCrash();
|
||||||
tr("Test for project \"%1\" crashed.").arg(m_currentConfig->displayName())
|
emit testResultReady(TestResultPtr(new FaultyTestResult(Result::MessageFatal,
|
||||||
+ processInformation(m_currentProcess) + rcInfo(m_currentConfig))));
|
tr("Test for project \"%1\" crashed.").arg(m_currentConfig->displayName())
|
||||||
} else if (!m_currentOutputReader->hadValidOutput()) {
|
+ processInformation(m_currentProcess) + rcInfo(m_currentConfig))));
|
||||||
emit testResultReady(TestResultPtr(new FaultyTestResult(Result::MessageFatal,
|
} else if (!m_currentOutputReader->hadValidOutput()) {
|
||||||
tr("Test for project \"%1\" did not produce any expected output.")
|
emit testResultReady(TestResultPtr(new FaultyTestResult(Result::MessageFatal,
|
||||||
|
tr("Test for project \"%1\" did not produce any expected output.")
|
||||||
.arg(m_currentConfig->displayName()) + processInformation(m_currentProcess)
|
.arg(m_currentConfig->displayName()) + processInformation(m_currentProcess)
|
||||||
+ rcInfo(m_currentConfig))));
|
+ rcInfo(m_currentConfig))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
resetInternalPointers();
|
resetInternalPointers();
|
||||||
|
|
||||||
if (!m_selectedTests.isEmpty() && !m_fakeFutureInterface->isCanceled())
|
if (!m_selectedTests.isEmpty() && !m_fakeFutureInterface->isCanceled())
|
||||||
|
Reference in New Issue
Block a user