summaryrefslogtreecommitdiffstats
path: root/src/testlib/qabstracttestlogger.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/testlib/qabstracttestlogger.cpp')
-rw-r--r--src/testlib/qabstracttestlogger.cpp20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/testlib/qabstracttestlogger.cpp b/src/testlib/qabstracttestlogger.cpp
index f7d8842c4c..9ac1de9909 100644
--- a/src/testlib/qabstracttestlogger.cpp
+++ b/src/testlib/qabstracttestlogger.cpp
@@ -80,12 +80,28 @@ QAbstractTestLogger::~QAbstractTestLogger()
stream = 0;
}
+void QAbstractTestLogger::filterUnprintable(char *str) const
+{
+ char *idx = str;
+ while (*idx) {
+ if (((*idx < 0x20 && *idx != '\n' && *idx != '\t') || *idx > 0x7e))
+ *idx = '?';
+ ++idx;
+ }
+}
+
void QAbstractTestLogger::outputString(const char *msg)
{
QTEST_ASSERT(stream);
- ::fputs(msg, stream);
+ char *filtered = new char[strlen(msg) + 1];
+ strcpy(filtered, msg);
+ filterUnprintable(filtered);
+
+ ::fputs(filtered, stream);
::fflush(stream);
+
+ delete [] filtered;
}
void QAbstractTestLogger::startLogging()
@@ -135,8 +151,6 @@ int qt_asprintf(QTestCharBuffer *str, const char *format, ...)
break; // out of memory - take what we have
}
- filter_unprintable(str->data());
-
return res;
}