diff options
author | Marco Bubke <marco.bubke@qt.io> | 2016-11-16 15:53:29 +0100 |
---|---|---|
committer | Marco Bubke <marco.bubke@qt.io> | 2016-11-17 15:06:31 +0000 |
commit | 8a16151601e20931b1c347810d9616f0dad3fe55 (patch) | |
tree | f22bb3cfd39e9e9a130b2e3225731dd9ce8523c9 | |
parent | 591d693d0d41fce6e6a34617c23d9af3d8851f67 (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.cpp | 66 | ||||
-rw-r--r-- | tests/unit/unittest/gtest-qt-printing.h | 74 |
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); - -//} -//} |