AutoTest: Allow colored commandline output

Some test frameworks allow to print their output colorful
to further indicate meanings of messages or test results.
Provide a highlighter for the textual output of the results
and enable this functionality for GTest and Boost UTF.
Keep at least a small backdoor for overwriting this by
the user.

Fixes: QTCREATORBUG-22297
Change-Id: Iddd2b734416de807635d90c6519553081f7372f2
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Christian Stenger
2019-11-06 14:26:40 +01:00
parent e58f376068
commit 333b8f9812
15 changed files with 269 additions and 8 deletions

View File

@@ -34,8 +34,6 @@
namespace Autotest {
enum class OutputChannel { StdOut, StdErr };
class TestOutputReader : public QObject
{
Q_OBJECT
@@ -54,9 +52,11 @@ public:
void setId(const QString &id) { m_id = id; }
QString id() const { return m_id; }
void resetCommandlineColor();
signals:
void newOutputLineAvailable(const QByteArray &outputLine, OutputChannel channel);
protected:
QString removeCommandlineColors(const QString &original);
virtual void processOutputLine(const QByteArray &outputLine) = 0;
virtual TestResultPtr createDefaultResult() const = 0;