diff options
author | Christian Stenger <[email protected]> | 2019-11-06 14:25:16 +0100 |
---|---|---|
committer | Christian Stenger <[email protected]> | 2019-11-13 13:07:35 +0000 |
commit | e58f37606803a561ec9470dab049a3618cdb857f (patch) | |
tree | 678ee79e7cc675b0cba7613c76fe3098d4a9a45b /src/plugins/autotest | |
parent | 2c7e769e312d2e6bf7efe68be2c4f0b6ccb8cf85 (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 <[email protected]>
Diffstat (limited to 'src/plugins/autotest')
-rw-r--r-- | src/plugins/autotest/boost/boosttestoutputreader.cpp | 2 | ||||
-rw-r--r-- | src/plugins/autotest/testoutputreader.cpp | 4 | ||||
-rw-r--r-- | src/plugins/autotest/testoutputreader.h | 4 | ||||
-rw-r--r-- | src/plugins/autotest/testresultspane.cpp | 6 | ||||
-rw-r--r-- | src/plugins/autotest/testresultspane.h | 4 |
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 |