aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/autotest
diff options
context:
space:
mode:
authorChristian Stenger <christian.stenger@qt.io>2019-11-06 14:25:16 +0100
committerChristian Stenger <christian.stenger@qt.io>2019-11-13 13:07:35 +0000
commite58f37606803a561ec9470dab049a3618cdb857f (patch)
tree678ee79e7cc675b0cba7613c76fe3098d4a9a45b /src/plugins/autotest
parent2c7e769e312d2e6bf7efe68be2c4f0b6ccb8cf85 (diff)
AutoTest: Tweak output handling
..to be able to distinguish between the output channels. Some test frameworks use the stderr stream for printing relevant output. This is a preparation for coloring the output correctly later on. Change-Id: I3bfea9e552bde3621df99611a124b4f2d3b7d1da Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src/plugins/autotest')
-rw-r--r--src/plugins/autotest/boost/boosttestoutputreader.cpp2
-rw-r--r--src/plugins/autotest/testoutputreader.cpp4
-rw-r--r--src/plugins/autotest/testoutputreader.h4
-rw-r--r--src/plugins/autotest/testresultspane.cpp6
-rw-r--r--src/plugins/autotest/testresultspane.h4
5 files changed, 13 insertions, 7 deletions
diff --git a/src/plugins/autotest/boost/boosttestoutputreader.cpp b/src/plugins/autotest/boost/boosttestoutputreader.cpp
index c92cf98c0a4..26e3f4ee3dc 100644
--- a/src/plugins/autotest/boost/boosttestoutputreader.cpp
+++ b/src/plugins/autotest/boost/boosttestoutputreader.cpp
@@ -380,7 +380,7 @@ void BoostTestOutputReader::processStdError(const QByteArray &outputLine)
{
// we need to process the output, Boost UTF uses both out streams
processOutputLine(outputLine);
- emit newOutputLineAvailable(outputLine);
+ emit newOutputLineAvailable(outputLine, OutputChannel::StdErr);
}
TestResultPtr BoostTestOutputReader::createDefaultResult() const
diff --git a/src/plugins/autotest/testoutputreader.cpp b/src/plugins/autotest/testoutputreader.cpp
index 5865d521d12..411e384f4f2 100644
--- a/src/plugins/autotest/testoutputreader.cpp
+++ b/src/plugins/autotest/testoutputreader.cpp
@@ -68,13 +68,13 @@ TestOutputReader::TestOutputReader(const QFutureInterface<TestResultPtr> &future
void TestOutputReader::processStdOutput(const QByteArray &outputLine)
{
processOutputLine(outputLine);
- emit newOutputLineAvailable(outputLine);
+ emit newOutputLineAvailable(outputLine, OutputChannel::StdOut);
}
void TestOutputReader::processStdError(const QByteArray &outputLine)
{
qWarning() << "AutoTest.Run: Ignored plain output:" << outputLine;
- emit newOutputLineAvailable(outputLine);
+ emit newOutputLineAvailable(outputLine, OutputChannel::StdErr);
}
void TestOutputReader::reportCrash()
diff --git a/src/plugins/autotest/testoutputreader.h b/src/plugins/autotest/testoutputreader.h
index dc6d25c9df6..6e8409604a2 100644
--- a/src/plugins/autotest/testoutputreader.h
+++ b/src/plugins/autotest/testoutputreader.h
@@ -34,6 +34,8 @@
namespace Autotest {
+enum class OutputChannel { StdOut, StdErr };
+
class TestOutputReader : public QObject
{
Q_OBJECT
@@ -53,7 +55,7 @@ public:
QString id() const { return m_id; }
signals:
- void newOutputLineAvailable(const QByteArray &outputLine);
+ void newOutputLineAvailable(const QByteArray &outputLine, OutputChannel channel);
protected:
virtual void processOutputLine(const QByteArray &outputLine) = 0;
virtual TestResultPtr createDefaultResult() const = 0;
diff --git a/src/plugins/autotest/testresultspane.cpp b/src/plugins/autotest/testresultspane.cpp
index dcf9a5ab563..0ea36be5d2a 100644
--- a/src/plugins/autotest/testresultspane.cpp
+++ b/src/plugins/autotest/testresultspane.cpp
@@ -239,13 +239,14 @@ void TestResultsPane::addTestResult(const TestResultPtr &result)
navigateStateChanged();
}
-void TestResultsPane::addOutputLine(const QByteArray &outputLine)
+void TestResultsPane::addOutputLine(const QByteArray &outputLine, OutputChannel channel)
{
if (!QTC_GUARD(!outputLine.contains('\n'))) {
for (auto line : outputLine.split('\n'))
- addOutputLine(line);
+ addOutputLine(line, channel);
return;
}
+ m_outputChannels.append(channel);
m_textOutput->appendPlainText(QString::fromUtf8(outputLine));
}
@@ -286,6 +287,7 @@ void TestResultsPane::clearContents()
m_autoScroll = AutotestPlugin::settings()->autoScroll;
connect(m_treeView->verticalScrollBar(), &QScrollBar::rangeChanged,
this, &TestResultsPane::onScrollBarRangeChanged, Qt::UniqueConnection);
+ m_outputChannels.clear();
m_textOutput->clear();
clearMarks();
}
diff --git a/src/plugins/autotest/testresultspane.h b/src/plugins/autotest/testresultspane.h
index cccaddec2ea..b92463468ac 100644
--- a/src/plugins/autotest/testresultspane.h
+++ b/src/plugins/autotest/testresultspane.h
@@ -49,6 +49,7 @@ class IContext;
namespace Autotest {
+enum class OutputChannel;
class TestResult;
namespace Internal {
@@ -94,7 +95,7 @@ public:
void goToPrev() override;
void addTestResult(const TestResultPtr &result);
- void addOutputLine(const QByteArray &outputLine);
+ void addOutputLine(const QByteArray &outputLine, OutputChannel channel);
void showTestResult(const QModelIndex &index);
private:
@@ -144,6 +145,7 @@ private:
bool m_atEnd = false;
bool m_testRunning = false;
QVector<TestEditorMark *> m_marks;
+ QList<OutputChannel> m_outputChannels;
};
} // namespace Internal