aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/autotest/testoutputreader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/autotest/testoutputreader.cpp')
-rw-r--r--plugins/autotest/testoutputreader.cpp22
1 files changed, 14 insertions, 8 deletions
diff --git a/plugins/autotest/testoutputreader.cpp b/plugins/autotest/testoutputreader.cpp
index c75260ef015..df4083b3083 100644
--- a/plugins/autotest/testoutputreader.cpp
+++ b/plugins/autotest/testoutputreader.cpp
@@ -324,16 +324,22 @@ void TestOutputReader::processGTestOutput()
static QString description;
static QByteArray unprocessed;
- while (m_testApplication->canReadLine())
- unprocessed.append(m_testApplication->readLine());
-
- int lineBreak;
- while ((lineBreak = unprocessed.indexOf('\n')) != -1) {
- const QString line = QLatin1String(unprocessed.left(lineBreak));
- unprocessed.remove(0, lineBreak + 1);
- if (line.isEmpty()) {
+ while (m_testApplication->canReadLine()) {
+ QByteArray read = m_testApplication->readLine();
+ if (!unprocessed.isEmpty()) {
+ read = unprocessed + read;
+ unprocessed.clear();
+ }
+ if (!read.endsWith('\n')) {
+ unprocessed = read;
continue;
}
+ read.chop(1); // remove the newline from the output
+
+ const QString line = QString::fromLatin1(read);
+ if (line.trimmed().isEmpty())
+ continue;
+
if (!line.startsWith(QLatin1Char('['))) {
description.append(line).append(QLatin1Char('\n'));
if (line.startsWith(QStringLiteral("Note:"))) {