aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Bubke <marco.bubke@qt.io>2016-11-16 15:53:29 +0100
committerMarco Bubke <marco.bubke@qt.io>2016-11-17 15:06:31 +0000
commit8a16151601e20931b1c347810d9616f0dad3fe55 (patch)
treef22bb3cfd39e9e9a130b2e3225731dd9ce8523c9
parent591d693d0d41fce6e6a34617c23d9af3d8851f67 (diff)
UnitTests: Add QByteArray printer
Change-Id: I1461db8b5337e6e6aa387edc4da72ca3379d8b73 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
-rw-r--r--tests/unit/unittest/gtest-qt-printing.cpp66
-rw-r--r--tests/unit/unittest/gtest-qt-printing.h74
2 files changed, 73 insertions, 67 deletions
diff --git a/tests/unit/unittest/gtest-qt-printing.cpp b/tests/unit/unittest/gtest-qt-printing.cpp
new file mode 100644
index 0000000000..27cd5cfe1b
--- /dev/null
+++ b/tests/unit/unittest/gtest-qt-printing.cpp
@@ -0,0 +1,66 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+****************************************************************************/
+
+#include <QString>
+#include <QDebug>
+
+#include <gtest/gtest-printers.h>
+
+#include <iostream>
+
+QT_BEGIN_NAMESPACE
+
+void PrintTo(const QByteArray &byteArray, ::std::ostream *os)
+{
+ if (byteArray.contains('\n')) {
+ QByteArray formattedArray = byteArray;
+ formattedArray.replace("\n", "\n\t");
+ *os << "\n\t";
+ os->write(formattedArray.data(), formattedArray.size());
+ } else {
+ *os << "\"";
+ os->write(byteArray.data(), byteArray.size());
+ *os << "\"";
+ }
+}
+
+void PrintTo(const QVariant &variant, ::std::ostream *os)
+{
+ QString output;
+ QDebug debug(&output);
+
+ debug << variant;
+
+ PrintTo(output.toUtf8(), os);
+}
+
+void PrintTo(const QString &text, ::std::ostream *os)
+{
+ const QByteArray utf8 = text.toUtf8();
+
+ PrintTo(text.toUtf8(), os);
+}
+
+QT_END_NAMESPACE
diff --git a/tests/unit/unittest/gtest-qt-printing.h b/tests/unit/unittest/gtest-qt-printing.h
index 12238e9082..8e050ce3ad 100644
--- a/tests/unit/unittest/gtest-qt-printing.h
+++ b/tests/unit/unittest/gtest-qt-printing.h
@@ -23,78 +23,18 @@
**
****************************************************************************/
-#include <QString>
-#include <QDebug>
-
-#if defined(__GNUC__)
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wunused-parameter"
-#endif
-
-#ifdef CLANG_UNIT_TESTS
-#include <clang/Basic/SourceLocation.h>
-#include <clang/Basic/SourceManager.h>
-#endif
-
-#if defined(__GNUC__)
-#pragma GCC diagnostic pop
-#endif
+#pragma once
-#include <gtest/gtest-printers.h>
+#include <QtGlobal>
-#include <iostream>
-
-#pragma once
+#include <iosfwd>
QT_BEGIN_NAMESPACE
class QVariant;
-inline void PrintTo(const QVariant &variant, ::std::ostream *os)
-{
- QString output;
- QDebug debug(&output);
-
- debug << variant;
-
- *os << output.toUtf8().constData();
-}
-
-inline void PrintTo(const QString &text, ::std::ostream *os)
-{
- *os << text.toUtf8().constData();
-}
+class QString;
+void PrintTo(const QVariant &variant, ::std::ostream *os);
+void PrintTo(const QString &text, ::std::ostream *os);
+void PrintTo(const QByteArray &byteArray, ::std::ostream *os);
QT_END_NAMESPACE
-
-#ifdef CLANG_UNIT_TESTS
-namespace clang {
-
-inline
-std::ostream &operator<<(std::ostream &out, const StringRef stringReference)
-{
- out.write(stringReference.data(), std::streamsize(stringReference.size()));
-
- return out;
-}
-
-inline void PrintTo(const clang::FullSourceLoc &sourceLocation, ::std::ostream *os)
-{
- auto &&sourceManager = sourceLocation.getManager();
- auto fileName = sourceManager.getFileEntryForID(sourceLocation.getFileID())->getName();
-
- *os << "SourceLocation(\""
- << fileName << ", "
- << sourceLocation.getSpellingLineNumber() << ", "
- << sourceLocation.getSpellingColumnNumber() << ")";
-}
-
-}
-#endif
-
-//namespace testing {
-//namespace internal {
-
-// void PrintTo(const QVariant &variant, ::std::ostream *os);
-
-//}
-//}