diff --git a/src/plugins/autotest/testoutputreader.cpp b/src/plugins/autotest/testoutputreader.cpp index 6c9e4781bde..6595cc7762d 100644 --- a/src/plugins/autotest/testoutputreader.cpp +++ b/src/plugins/autotest/testoutputreader.cpp @@ -74,7 +74,7 @@ void TestOutputReader::reportCrash() TestResult result = createDefaultResult(); result.setDescription(Tr::tr("Test executable crashed.")); result.setResult(ResultType::MessageFatal); - m_futureInterface.reportResult(result); + emit newResult(result); } void TestOutputReader::createAndReportResult(const QString &message, ResultType type) @@ -109,7 +109,7 @@ void TestOutputReader::reportResult(const TestResult &result) { if (m_sanitizerResult.isValid()) sendAndResetSanitizerResult(); - m_futureInterface.reportResult(result); + emit newResult(result); m_hadValidOutput = true; } @@ -173,7 +173,7 @@ void TestOutputReader::sendAndResetSanitizerResult() } } - m_futureInterface.reportResult(m_sanitizerResult); + emit newResult(m_sanitizerResult); m_hadValidOutput = true; m_sanitizerLines.clear(); m_sanitizerResult = {}; diff --git a/src/plugins/autotest/testoutputreader.h b/src/plugins/autotest/testoutputreader.h index 5f65de1ae44..e0ff74b399c 100644 --- a/src/plugins/autotest/testoutputreader.h +++ b/src/plugins/autotest/testoutputreader.h @@ -33,6 +33,7 @@ public: void resetCommandlineColor(); signals: + void newResult(const TestResult &result); void newOutputLineAvailable(const QByteArray &outputLine, OutputChannel channel); protected: static Utils::FilePath constructSourceFilePath(const Utils::FilePath &base, diff --git a/src/plugins/autotest/testrunner.cpp b/src/plugins/autotest/testrunner.cpp index bb6a265c248..128f5736c21 100644 --- a/src/plugins/autotest/testrunner.cpp +++ b/src/plugins/autotest/testrunner.cpp @@ -72,8 +72,6 @@ TestRunner::TestRunner() m_cancelTimer.setSingleShot(true); connect(&m_cancelTimer, &QTimer::timeout, this, [this] { cancelCurrent(Timeout); }); - connect(&m_futureWatcher, &QFutureWatcher::resultReadyAt, - this, [this](int index) { emit testResultReady(m_futureWatcher.resultAt(index)); }); connect(&m_futureWatcher, &QFutureWatcher::finished, this, &TestRunner::onFinished); connect(this, &TestRunner::requestStopTestRun, @@ -239,7 +237,7 @@ void TestRunner::scheduleNext() QTC_ASSERT(!m_currentOutputReader, delete m_currentOutputReader); m_currentOutputReader = m_currentConfig->createOutputReader(*m_fakeFutureInterface, m_currentProcess); QTC_ASSERT(m_currentOutputReader, onProcessDone(); return); - + connect(m_currentOutputReader, &TestOutputReader::newResult, this, &TestRunner::testResultReady); connect(m_currentOutputReader, &TestOutputReader::newOutputLineAvailable, TestResultsPane::instance(), &TestResultsPane::addOutputLine); @@ -654,6 +652,7 @@ void TestRunner::debugTests() if (useOutputProcessor) { TestOutputReader *outputreader = config->createOutputReader(*futureInterface, nullptr); + connect(outputreader, &TestOutputReader::newResult, this, &TestRunner::testResultReady); outputreader->setId(inferior.command.executable().toString()); connect(outputreader, &TestOutputReader::newOutputLineAvailable, TestResultsPane::instance(), &TestResultsPane::addOutputLine);