forked from qt-creator/qt-creator
AutoTest: Fix processing of output
In case a (Qt) test process produces output that does not belong to the standard test output we might ended without processable output at all. Avoid this by just handling the output that is given on stdout for now. Change-Id: If5ee70140b95cb61422e58a7610b7fe2d09915c2 Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
This commit is contained in:
@@ -137,6 +137,13 @@ TestOutputReader::TestOutputReader(const QFutureInterface<TestResultPtr> &future
|
|||||||
, m_buildDir(buildDirectory)
|
, m_buildDir(buildDirectory)
|
||||||
{
|
{
|
||||||
connect(m_testApplication, &QProcess::readyRead, this, &TestOutputReader::processOutput);
|
connect(m_testApplication, &QProcess::readyRead, this, &TestOutputReader::processOutput);
|
||||||
|
connect(m_testApplication, &QProcess::readyReadStandardError,
|
||||||
|
this, &TestOutputReader::processStdError);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TestOutputReader::processStdError()
|
||||||
|
{
|
||||||
|
qWarning() << "Ignored plain output:" << m_testApplication->readAllStandardError();
|
||||||
}
|
}
|
||||||
|
|
||||||
QtTestOutputReader::QtTestOutputReader(const QFutureInterface<TestResultPtr> &futureInterface,
|
QtTestOutputReader::QtTestOutputReader(const QFutureInterface<TestResultPtr> &futureInterface,
|
||||||
|
@@ -49,6 +49,7 @@ public:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void processOutput() = 0;
|
virtual void processOutput() = 0;
|
||||||
|
virtual void processStdError();
|
||||||
QFutureInterface<TestResultPtr> m_futureInterface;
|
QFutureInterface<TestResultPtr> m_futureInterface;
|
||||||
QProcess *m_testApplication; // not owned
|
QProcess *m_testApplication; // not owned
|
||||||
QString m_buildDir;
|
QString m_buildDir;
|
||||||
|
@@ -137,7 +137,6 @@ static void performTestRun(QFutureInterface<TestResultPtr> &futureInterface,
|
|||||||
}
|
}
|
||||||
|
|
||||||
QProcess testProcess;
|
QProcess testProcess;
|
||||||
testProcess.setReadChannelMode(QProcess::MergedChannels);
|
|
||||||
testProcess.setReadChannel(QProcess::StandardOutput);
|
testProcess.setReadChannel(QProcess::StandardOutput);
|
||||||
|
|
||||||
futureInterface.setProgressRange(0, testCaseCount);
|
futureInterface.setProgressRange(0, testCaseCount);
|
||||||
|
Reference in New Issue
Block a user